diff mbox series

Bluetooth: btusb: Add support for 0cb5:c547 Realtek 8822CE device

Message ID CAC_SeizxoD1PkNHWYg1FcV9x6tote2JyJNX3Kwu3XtHkCF+FPQ@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series Bluetooth: btusb: Add support for 0cb5:c547 Realtek 8822CE device | expand

Commit Message

David Zakarias Oct. 27, 2020, 8:52 p.m. UTC
My Redmibook 16 AMD laptop contains the RTL8822CE chip having the USB
identifier 0cb5:c547. This patch adds this Id to btusb.c's blacklist
table, enabling the loading of the Realtek firmware.
This, together with another patch by Edward Vear (hci_core: Fix
attempting to set RPA timeout when unsupported, see
https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2) makes my
bluetooth mouse work.

Signed-off-by: David Zakarias <david.zakarias@gmail.com>
---

Comments

Tedd Ho-Jeong An Oct. 28, 2020, 8:53 p.m. UTC | #1
Hi David,

On Tue, 2020-10-27 at 21:52 +0100, David Zakarias wrote:
> My Redmibook 16 AMD laptop contains the RTL8822CE chip having the USB
> identifier 0cb5:c547. This patch adds this Id to btusb.c's blacklist
> table, enabling the loading of the Realtek firmware.
> This, together with another patch by Edward Vear (hci_core: Fix
> attempting to set RPA timeout when unsupported, see
> https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2) makes my
> bluetooth mouse work.
> 
> Signed-off-by: David Zakarias <david.zakarias@gmail.com>
> ---
> --- bluetooth/drivers/bluetooth/btusb.c.orig 2020-10-27 21:24:51.331035974
> +0100
> +++ bluetooth/drivers/bluetooth/btusb.c 2020-10-27 21:21:46.000000000 +0100
> @@ -386,6 +386,7 @@ static const struct usb_device_id blackl
> 
>   /* Additional Realtek 8822CE Bluetooth devices */
>   { USB_DEVICE(0x04ca, 0x4005), .driver_info = BTUSB_REALTEK },
> + { USB_DEVICE(0x0cb5, 0xc547), .driver_info = BTUSB_REALTEK },
> 
>   /* Silicon Wave based devices */
>   { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },

Please include the content of /sys/kernel/debug/usb/devices for this device in
the commit message.

Regards,

Tedd Ho-Jeong An
An, Tedd Oct. 28, 2020, 9:26 p.m. UTC | #2
Hi David

On Tue, 2020-10-27 at 21:52 +0100, David Zakarias wrote:
> My Redmibook 16 AMD laptop contains the RTL8822CE chip having the USB
> identifier 0cb5:c547. This patch adds this Id to btusb.c's blacklist
> table, enabling the loading of the Realtek firmware.
> This, together with another patch by Edward Vear (hci_core: Fix
> attempting to set RPA timeout when unsupported, see
> https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2) makes my
> bluetooth mouse work.
> 
> Signed-off-by: David Zakarias <david.zakarias@gmail.com>
> ---
> --- bluetooth/drivers/bluetooth/btusb.c.orig 2020-10-27 21:24:51.331035974
> +0100
> +++ bluetooth/drivers/bluetooth/btusb.c 2020-10-27 21:21:46.000000000 +0100
> @@ -386,6 +386,7 @@ static const struct usb_device_id blackl
> 
>   /* Additional Realtek 8822CE Bluetooth devices */
>   { USB_DEVICE(0x04ca, 0x4005), .driver_info = BTUSB_REALTEK },
> + { USB_DEVICE(0x0cb5, 0xc547), .driver_info = BTUSB_REALTEK },
> 
>   /* Silicon Wave based devices */
>   { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },

Please include the content of /sys/kernel/debug/usb/devices for this device in
the commit message.

Regards,

Tedd Ho-Jeong An
David Zakarias Oct. 29, 2020, 4:57 p.m. UTC | #3
Hi Tedd,

Is this what you are looking for?


T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 4
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.09
S:  Manufacturer=Linux 5.9.1 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:02:00.3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0cb5 ProdID=c547 Rev= 0.00
S:  Manufacturer=Realtek
S:  Product=Bluetooth Radio
S:  SerialNumber=00e04c000001
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
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=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) 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=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 2
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 5.09
S:  Manufacturer=Linux 5.9.1 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:02:00.3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 4
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.09
S:  Manufacturer=Linux 5.9.1 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:02:00.4
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 2
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 5.09
S:  Manufacturer=Linux 5.9.1 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:02:00.4
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

An, Tedd <tedd.an@intel.com> ezt írta (időpont: 2020. okt. 28., Sze, 22:26):
>
> Hi David
>
> On Tue, 2020-10-27 at 21:52 +0100, David Zakarias wrote:
> > My Redmibook 16 AMD laptop contains the RTL8822CE chip having the USB
> > identifier 0cb5:c547. This patch adds this Id to btusb.c's blacklist
> > table, enabling the loading of the Realtek firmware.
> > This, together with another patch by Edward Vear (hci_core: Fix
> > attempting to set RPA timeout when unsupported, see
> > https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2) makes my
> > bluetooth mouse work.
> >
> > Signed-off-by: David Zakarias <david.zakarias@gmail.com>
> > ---
> > --- bluetooth/drivers/bluetooth/btusb.c.orig 2020-10-27 21:24:51.331035974
> > +0100
> > +++ bluetooth/drivers/bluetooth/btusb.c 2020-10-27 21:21:46.000000000 +0100
> > @@ -386,6 +386,7 @@ static const struct usb_device_id blackl
> >
> >   /* Additional Realtek 8822CE Bluetooth devices */
> >   { USB_DEVICE(0x04ca, 0x4005), .driver_info = BTUSB_REALTEK },
> > + { USB_DEVICE(0x0cb5, 0xc547), .driver_info = BTUSB_REALTEK },
> >
> >   /* Silicon Wave based devices */
> >   { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },
>
> Please include the content of /sys/kernel/debug/usb/devices for this device in
> the commit message.
>
> Regards,
>
> Tedd Ho-Jeong An
Tedd Ho-Jeong An Oct. 29, 2020, 8:24 p.m. UTC | #4
Hi David,

On 2020-10-29 at 17:57:49 +0100, David Zakarias wrote:
> Hi Tedd,
> 
> Is this what you are looking for?
> 
> 
> T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 4
> B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
> P:  Vendor=1d6b ProdID=0002 Rev= 5.09
> S:  Manufacturer=Linux 5.9.1 xhci-hcd
> S:  Product=xHCI Host Controller
> S:  SerialNumber=0000:02:00.3
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
> 
> T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
> D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
> P:  Vendor=0cb5 ProdID=c547 Rev= 0.00
> S:  Manufacturer=Realtek
> S:  Product=Bluetooth Radio
> S:  SerialNumber=00e04c000001
> C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
> 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=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
> E:  Ad=82(I) 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=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
> E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
> E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
> E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
> E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
> E:  Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
> E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
> 

This seems the right device and you just need to include this device
info only.

> T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 2
> B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
> P:  Vendor=1d6b ProdID=0003 Rev= 5.09
> S:  Manufacturer=Linux 5.9.1 xhci-hcd
> S:  Product=xHCI Host Controller
> S:  SerialNumber=0000:02:00.3
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
> 
> T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 4
> B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
> P:  Vendor=1d6b ProdID=0002 Rev= 5.09
> S:  Manufacturer=Linux 5.9.1 xhci-hcd
> S:  Product=xHCI Host Controller
> S:  SerialNumber=0000:02:00.4
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
> 
> T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 2
> B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
> D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
> P:  Vendor=1d6b ProdID=0003 Rev= 5.09
> S:  Manufacturer=Linux 5.9.1 xhci-hcd
> S:  Product=xHCI Host Controller
> S:  SerialNumber=0000:02:00.4
> C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
> I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
> E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
> 
> An, Tedd <tedd.an@intel.com> ezt írta (időpont: 2020. okt. 28., Sze, 22:26):
> >
> > Hi David
> >
> > On Tue, 2020-10-27 at 21:52 +0100, David Zakarias wrote:
> > > My Redmibook 16 AMD laptop contains the RTL8822CE chip having the USB
> > > identifier 0cb5:c547. This patch adds this Id to btusb.c's blacklist
> > > table, enabling the loading of the Realtek firmware.
> > > This, together with another patch by Edward Vear (hci_core: Fix
> > > attempting to set RPA timeout when unsupported, see
> > > https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2) makes my
> > > bluetooth mouse work.
> > >
> > > Signed-off-by: David Zakarias <david.zakarias@gmail.com>
> > > ---
> > > --- bluetooth/drivers/bluetooth/btusb.c.orig 2020-10-27 21:24:51.331035974
> > > +0100
> > > +++ bluetooth/drivers/bluetooth/btusb.c 2020-10-27 21:21:46.000000000 +0100
> > > @@ -386,6 +386,7 @@ static const struct usb_device_id blackl
> > >
> > >   /* Additional Realtek 8822CE Bluetooth devices */
> > >   { USB_DEVICE(0x04ca, 0x4005), .driver_info = BTUSB_REALTEK },
> > > + { USB_DEVICE(0x0cb5, 0xc547), .driver_info = BTUSB_REALTEK },
> > >
> > >   /* Silicon Wave based devices */
> > >   { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },
> >
> > Please include the content of /sys/kernel/debug/usb/devices for this device in
> > the commit message.
> >
> > Regards,
> >
> > Tedd Ho-Jeong An

Regards,

Tedd
diff mbox series

Patch

--- bluetooth/drivers/bluetooth/btusb.c.orig 2020-10-27 21:24:51.331035974 +0100
+++ bluetooth/drivers/bluetooth/btusb.c 2020-10-27 21:21:46.000000000 +0100
@@ -386,6 +386,7 @@  static const struct usb_device_id blackl

  /* Additional Realtek 8822CE Bluetooth devices */
  { USB_DEVICE(0x04ca, 0x4005), .driver_info = BTUSB_REALTEK },
+ { USB_DEVICE(0x0cb5, 0xc547), .driver_info = BTUSB_REALTEK },

  /* Silicon Wave based devices */
  { USB_DEVICE(0x0c10, 0x0000), .driver_info = BTUSB_SWAVE },