bcm27xx: import latest patches from the RPi foundation
[openwrt/staging/noltari.git] / target / linux / bcm27xx / patches-5.4 / 950-0942-Bluetooth-btrtl-Add-support-for-RTL8761B.patch
1 From 61695e30db3121c11e52be89751e610d2e97212a Mon Sep 17 00:00:00 2001
2 From: "Ziqian SUN (Zamir)" <sztsian@gmail.com>
3 Date: Sat, 11 Apr 2020 09:34:27 +0800
4 Subject: [PATCH] Bluetooth: btrtl: Add support for RTL8761B
5
6 commit 04896832c94aae4842100cafb8d3a73e1bed3a45 upstream.
7
8 Add new compatible device RTL8761B. RTL8761B is a USB Bluetooth device,
9 with support of BLE and BR/EDR. The USB info is
10
11 T: Bus=03 Lev=04 Prnt=04 Port=00 Cnt=01 Dev#= 29 Spd=12 MxCh= 0
12 D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
13 P: Vendor=0bda ProdID=8771 Rev= 2.00
14 S: Manufacturer=Realtek
15 S: Product=Bluetooth Radio
16 S: SerialNumber=XXXXXXXXXXXX
17 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
18 I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
19 E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
20 E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
21 E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
22 I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
23 E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
24 E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
25 I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
26 E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
27 E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
28 I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
29 E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
30 E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
31 I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
32 E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
33 E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
34 I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
35 E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
36 E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
37 I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
38 E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
39 E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
40
41 Signed-off-by: Ziqian SUN (Zamir) <sztsian@gmail.com>
42 Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
43 ---
44 drivers/bluetooth/btrtl.c | 10 +++++++++-
45 1 file changed, 9 insertions(+), 1 deletion(-)
46
47 --- a/drivers/bluetooth/btrtl.c
48 +++ b/drivers/bluetooth/btrtl.c
49 @@ -130,12 +130,19 @@ static const struct id_table ic_id_table
50 .cfg_name = "rtl_bt/rtl8821c_config" },
51
52 /* 8761A */
53 - { IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0,
54 + { IC_INFO(RTL_ROM_LMP_8761A, 0xa),
55 .config_needed = false,
56 .has_rom_version = true,
57 .fw_name = "rtl_bt/rtl8761a_fw.bin",
58 .cfg_name = "rtl_bt/rtl8761a_config" },
59
60 + /* 8761B */
61 + { IC_INFO(RTL_ROM_LMP_8761A, 0xb),
62 + .config_needed = false,
63 + .has_rom_version = true,
64 + .fw_name = "rtl_bt/rtl8761b_fw.bin",
65 + .cfg_name = "rtl_bt/rtl8761b_config" },
66 +
67 /* 8822C with USB interface */
68 { IC_INFO(RTL_ROM_LMP_8822B, 0xc),
69 .config_needed = false,
70 @@ -255,6 +262,7 @@ static int rtlbt_parse_firmware(struct h
71 { RTL_ROM_LMP_8723B, 9 }, /* 8723D */
72 { RTL_ROM_LMP_8821A, 10 }, /* 8821C */
73 { RTL_ROM_LMP_8822B, 13 }, /* 8822C */
74 + { RTL_ROM_LMP_8761A, 14 }, /* 8761B */
75 };
76
77 min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3;