Thread (23 messages) flat view 23 messages, 3 authors, 2021-07-30

Re: [PATCH v5 11/11] Bluetooth: btintel: Fix the legacy bootloader returns tlv based version

From: Tedd Ho-Jeong An <hidden>
Date: 2021-07-29 20:02:28

Hi Marcel,

On Thu, 2021-07-29 at 21:40 +0200, Marcel Holtmann wrote:
Hi Tedd,
quoted
From the ThP, it supports both old and TLV based HCI_Intel_Read_Version
command after downloading the operational firmware.
Starting from th JfP, it supports both old and TLV based
HCI_Intel_Read_Version command in the operational firmware and it causes
the setup() uses the TLV based setup instead of legacy setup.

So, as a workaround, this patch checks the fw variant from the TLV based
version and it uses the legacy HCI_Intel_Read_Version command to get the
legacy version information and run the legacy bootloader setup with it.

Signed-off-by: Tedd Ho-Jeong An <redacted>
---
drivers/bluetooth/btintel.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 57b64d744f0a..f11882d10da7 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2254,10 +2254,33 @@ int btintel_setup_combined(struct hci_dev *hdev)
	/* For TLV type device, parse the tlv data */
	btintel_parse_version_tlv(hdev, &ver_tlv, skb);

+	/* Some legacy bootloader devices from JfP supports both old and TLV
+	 * based HCI_Intel_Read_Version command. But we don't want to use the
+	 * TLV based setup routines for those old bootloader device.
+	 * Also, it is not easy to convert TLV based version to the legacy
+	 * version format.
+	 *
+	 * So, as a workaround for those devices, use the legacy
+	 * HCI_Intel_Read_Version to get the version information and run the
+	 * legacy bootloader setup.
+	 */
why is that again? If possible we should convert them. What information is missing from the TLV
format that we need?
It needs hw_variant, hw_revision, and fw_revision in order to get the firmware file for legacy
bootloader setup. But new TLV format doesn't provide those values.

Let me check with FW team if those values are wrapped in TLV somehow.

Regards

Marcel
Regards,
Tedd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help