[PATCH v5 00/11] Bluetooth: btintel: Refactoring setup routines
From: Tedd Ho-Jeong An <hidden>
Date: 2021-07-29 18:36:07
From: Tedd Ho-Jeong An <redacted>
This patch set refactors the multiple setup routines for various Intel devices
to a combined single entry. Here are the highlight of the changes:
0. Sync with the current tip of the master:
acd5aea400 ("Bluetooth: btusb: Add valid le states quirk")
1. Updated hci_alloc_dev() to allocate the hdev object with an extra buffer
for the private data. btintel introduces the btintel_data struct and
store it to the private data in hdev object.
2. Added a single entry for setup and shutdown and uses the
HCI_Intel_Read_Version command to identify the device, instead of
relying on the USB VID and PID.
Also, it uses the new format of HCI_Intel_Read_Version command for
legacy ROM and legacy bootloader devices. Luckly legacy devices
support the new format.
3. Keep the state of bootloader in btintel object. The bootloader state
is agnostic to the transport type, so btintel uses the btintel_data
to keep track of the state in the private data section in hdev.
4. After identifying the setup type for the device, it uses the
correspond setup routines based on the setup type, and the setup
routines were moved from btusb to btintel.
However, actual work for the setup routines were not changed or very
minimal.
5. Since many functions were moved from btusb to btintel, clean up the
exported functions and make them static if possible.
6. From the JfP/ThP, the operational firmware support the new TLV based
HCI_Intel_Read_Version command, which confues the usage during the
setup routine. So, the check for firmware variant of those legacy
bootloader sku is added to use the legacy bootloader setup call.
Changes in v5
- Added hci_alloc_dev_priv() to allocate the hdev with private data.
This will also minimize the changes to other code that uses
hci_alloc_dev().
- Minor fixes with checkpatch result.
Tedd Ho-Jeong An (11):
Bluetooth: Add support hdev to allocate private data
Bluetooth: btintel: Add combined setup and shutdown functions
Bluetooth: btintel: Refactoring setup routine for legacy ROM sku
Bluetooth: btintel: Add btintel data struct
Bluetooth: btintel: Fix the first HCI command not work with ROM device
Bluetooth: btintel: Fix the LED is not turning off immediately
Bluetooth: btintel: Add combined set_diag functions
Bluetooth: btintel: Refactoring setup routine for legacy bootloader
Bluetooth: btintel: Refactoring setup routine for TLV based booloader
Bluetooth: btintel: Clean the exported function to static
Bluetooth: btintel: Fix the legacy bootloader returns tlv based
version
drivers/bluetooth/btintel.c | 1214 ++++++++++++++++++++++++++++--
drivers/bluetooth/btintel.h | 83 +-
drivers/bluetooth/btusb.c | 1105 ++-------------------------
include/net/bluetooth/hci_core.h | 13 +-
net/bluetooth/hci_core.c | 13 +-
5 files changed, 1254 insertions(+), 1174 deletions(-)
--
2.25.1