Skip to content

Commit 4622594

Browse files
zijun-huholtmann
authored andcommitted
Bluetooth: btusb: add support for Qualcomm WCN785x
Qualcomm WCN785x has PID/VID 0cf3/e700 as shown by /sys/kernel/debug/usb/devices: T: Bus=02 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 8 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0cf3 ProdID=e700 Rev= 0.01 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms I: If#= 1 Alt= 7 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 65 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 65 Ivl=1ms Signed-off-by: Zijun Hu <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]>
1 parent 5e2b606 commit 4622594

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

drivers/bluetooth/btusb.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,11 @@ static const struct usb_device_id blacklist_table[] = {
317317
BTUSB_WIDEBAND_SPEECH |
318318
BTUSB_VALID_LE_STATES },
319319

320+
/* QCA WCN785x chipset */
321+
{ USB_DEVICE(0x0cf3, 0xe700), .driver_info = BTUSB_QCA_WCN6855 |
322+
BTUSB_WIDEBAND_SPEECH |
323+
BTUSB_VALID_LE_STATES },
324+
320325
/* Broadcom BCM2035 */
321326
{ USB_DEVICE(0x0a5c, 0x2009), .driver_info = BTUSB_BCM92035 },
322327
{ USB_DEVICE(0x0a5c, 0x200a), .driver_info = BTUSB_WRONG_SCO_MTU },
@@ -3037,6 +3042,7 @@ static const struct qca_device_info qca_devices_table[] = {
30373042
{ 0x00130100, 40, 4, 16 }, /* WCN6855 1.0 */
30383043
{ 0x00130200, 40, 4, 16 }, /* WCN6855 2.0 */
30393044
{ 0x00130201, 40, 4, 16 }, /* WCN6855 2.1 */
3045+
{ 0x00190200, 40, 4, 16 }, /* WCN785x 2.0 */
30403046
};
30413047

30423048
static int btusb_qca_send_vendor_req(struct usb_device *udev, u8 request,
@@ -3327,11 +3333,11 @@ static int btusb_setup_qca(struct hci_dev *hdev)
33273333
if (err < 0)
33283334
return err;
33293335

3330-
/* WCN6855 2.1 will reset to apply firmware downloaded here, so
3336+
/* WCN6855 2.1 and later will reset to apply firmware downloaded here, so
33313337
* wait ~100ms for reset Done then go ahead, otherwise, it maybe
33323338
* cause potential enable failure.
33333339
*/
3334-
if (info->rom_version == 0x00130201)
3340+
if (info->rom_version >= 0x00130201)
33353341
msleep(QCA_BT_RESET_WAIT_MS);
33363342
}
33373343

0 commit comments

Comments
 (0)