Skip to contentSkip to conversation

btusb regression / 0a12:0001 CSR

DISCUSSION Norbert Holze 3 participants 6 messages Aug 9, 2015 – Aug 27, 2015 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hello,

My bluetooth usb-stick worked fine with kernel up to 3.19. With 4.x there is no hci device found.

lsusb
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

hcitool dev
Devices:

sudo hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:15:83:15:A3:0B ACL MTU: 672:4 SCO MTU: 48:1 DOWN
RX bytes:890 acl:0 sco:0 events:30 errors:0
TX bytes:126 acl:0 sco:0 commands:30 errors:0

sudo hciconfig hci0 up
Can't init device hci0: Operation not supported (95)

rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

Is this a regression. Or does it work in different way with 4.x?

Regards,

Norbert

Bluetooth monitor ver 5.33

= New Index: 00:00:00:00:00:00 (BR/EDR,USB,hci0)                [hci0] 0.253698
< HCI Command: Reset (0x03|0x0003) plen 0                       [hci0] 0.253973
> HCI Event: Command Complete (0x0e) plen 4                     [hci0] 0.313204
      Reset (0x03|0x0003) ncmd 1
        Status: Success (0x00)

< HCI Command: Read Local Supported Fea.. (0x04|0x0003) plen 0 [hci0] 0.313262

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 12 [hci0] 0.316197

Read Local Supported Features (0x04|0x0003) ncmd 1
Status: Success (0x00)
Features: 0xff 0x3e 0x85 0x38 0x18 0x18 0x00 0x00
3 slot packets
5 slot packets
Encryption
Slot offset
Timing accuracy
Role switch
Hold mode
Sniff mode
Power control requests
Channel quality driven data rate (CQDDR)
SCO link
HV2 packets
HV3 packets
CVSD synchronous data
Power control
Broadcast Encryption
Enhanced inquiry scan
Interlaced inquiry scan
Interlaced page scan
AFH capable slave
AFH classification slave
AFH capable master
AFH classification master
< HCI Command: Read Local Version Infor.. (0x04|0x0001) plen 0 [hci0] 0.316241

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 12 [hci0] 0.319196

      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 2.0 (0x03) - Revision 3164 (0x0c5c)
        LMP version: Bluetooth 2.0 (0x03) - Subversion 3164 (0x0c5c)
        Manufacturer: Cambridge Silicon Radio (10)

< HCI Command: Read BD ADDR (0x04|0x0009) plen 0 [hci0] 0.319238

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 10 [hci0] 0.322195

      Read BD ADDR (0x04|0x0009) ncmd 1
        Status: Success (0x00)
        Address: 00:15:83:15:A3:0B (IVT corporation)

< HCI Command: Read Buffer Size (0x04|0x0005) plen 0 [hci0] 0.322274

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 11 [hci0] 0.325196

Read Buffer Size (0x04|0x0005) ncmd 1
Status: Success (0x00)
ACL MTU: 672 ACL max packet: 4
SCO MTU: 48 SCO max packet: 1
< HCI Command: Read Class of Device (0x03|0x0023) plen 0 [hci0] 0.325243

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 7 [hci0] 0.328195

      Read Class of Device (0x03|0x0023) ncmd 1
        Status: Success (0x00)
        Class: 0x000104
          Major class: Computer (desktop, notebook, PDA, organizers)
          Minor class: Desktop workstation

< HCI Command: Read Local Name (0x03|0x0014) plen 0 [hci0] 0.328234

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 252 [hci0] 0.348198

      Read Local Name (0x03|0x0014) ncmd 1
        Status: Success (0x00)
        Name: 

< HCI Command: Read Voice Setting (0x03|0x0025) plen 0 [hci0] 0.348247

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 6 [hci0] 0.351195

Read Voice Setting (0x03|0x0025) ncmd 1
Status: Success (0x00)
Setting: 0x0060
Input Coding: Linear
Input Data Format: 2's complement
Input Sample Size: 16-bit
# of bits padding at MSB: 0
Air Coding Format: CVSD
< HCI Command: Read Number of Supported.. (0x03|0x0038) plen 0 [hci0] 0.351235

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 5 [hci0] 0.354199

      Read Number of Supported IAC (0x03|0x0038) ncmd 1
        Status: Success (0x00)
        Number of IAC: 2

< HCI Command: Read Current IAC LAP (0x03|0x0039) plen 0 [hci0] 0.354254

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 8 [hci0] 0.357196

      Read Current IAC LAP (0x03|0x0039) ncmd 1
        Status: Success (0x00)
        Number of IAC: 1
        Access code: 0x9e8b33 (General Inquiry)
< HCI Command: Set Event Filter (0x03|0x0005) plen 1            [hci0] 0.357245
        Type: Clear All Filters (0x00)
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 4 [hci0] 0.360201

      Set Event Filter (0x03|0x0005) ncmd 1
        Status: Success (0x00)
< HCI Command: Write Connection Accept... (0x03|0x0016) plen 2  [hci0] 0.360248
        Timeout: 20000.000 msec (0x7d00)
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 4 [hci0] 0.363194

      Write Connection Accept Timeout (0x03|0x0016) ncmd 1
        Status: Success (0x00)

< HCI Command: Read Local Supported Com.. (0x04|0x0002) plen 0 [hci0] 0.363233

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 68 [hci0] 0.371194

Read Local Supported Commands (0x04|0x0002) ncmd 1
Status: Success (0x00)
Commands: 114 entries
Inquiry (Octet 0 - Bit 0)
Inquiry Cancel (Octet 0 - Bit 1)
Periodic Inquiry Mode (Octet 0 - Bit 2)
Exit Periodic Inquiry Mode (Octet 0 - Bit 3) Create Connection (Octet 0 - Bit 4) Disconnect (Octet 0 - Bit 5)
Add SCO Connection (Octet 0 - Bit 6)
Create Connection Cancel (Octet 0 - Bit 7) Accept Connection Request (Octet 1 - Bit 0) Reject Connection Request (Octet 1 - Bit 1) Link Key Request Reply (Octet 1 - Bit 2)
Link Key Request Negative Reply (Octet 1 - Bit 3) PIN Code Request Reply (Octet 1 - Bit 4)
PIN Code Request Negative Reply (Octet 1 - Bit 5) Change Connection Packet Type (Octet 1 - Bit 6) Authentication Requested (Octet 1 - Bit 7) Set Connection Encryption (Octet 2 - Bit 0) Change Connection Link Key (Octet 2 - Bit 1) Master Link Key (Octet 2 - Bit 2)
Remote Name Request (Octet 2 - Bit 3)
Remote Name Request Cancel (Octet 2 - Bit 4) Read Remote Supported Features (Octet 2 - Bit 5) Read Remote Extended Features (Octet 2 - Bit 6) Read Remote Version Information (Octet 2 - Bit 7) Read Clock Offset (Octet 3 - Bit 0)
Read LMP Handle (Octet 3 - Bit 1)
Hold Mode (Octet 4 - Bit 1)
Sniff Mode (Octet 4 - Bit 2)
Exit Sniff Mode (Octet 4 - Bit 3)
QoS Setup (Octet 4 - Bit 6)
Role Discovery (Octet 4 - Bit 7)
Switch Role (Octet 5 - Bit 0)
Read Link Policy Settings (Octet 5 - Bit 1) Write Link Policy Settings (Octet 5 - Bit 2) Read Default Link Policy Settings (Octet 5 - Bit 3) Write Default Link Policy Settings (Octet 5 - Bit 4) Set Event Mask (Octet 5 - Bit 6)
Reset (Octet 5 - Bit 7)
Set Event Filter (Octet 6 - Bit 0)
Flush (Octet 6 - Bit 1)
Read PIN Type (Octet 6 - Bit 2)
Write PIN Type (Octet 6 - Bit 3)
Create New Unit Key (Octet 6 - Bit 4)
Read Stored Link Key (Octet 6 - Bit 5)
Write Stored Link Key (Octet 6 - Bit 6) Delete Stored Link Key (Octet 6 - Bit 7) Write Local Name (Octet 7 - Bit 0)
Read Local Name (Octet 7 - Bit 1)
Read Connection Accept Timeout (Octet 7 - Bit 2) Write Connection Accept Timeout (Octet 7 - Bit 3) Read Page Timeout (Octet 7 - Bit 4)
Write Page Timeout (Octet 7 - Bit 5)
Read Scan Enable (Octet 7 - Bit 6)
Write Scan Enable (Octet 7 - Bit 7)
Read Page Scan Activity (Octet 8 - Bit 0) Write Page Scan Activity (Octet 8 - Bit 1) Read Inquiry Scan Activity (Octet 8 - Bit 2) Write Inquiry Scan Activity (Octet 8 - Bit 3) Read Authentication Enable (Octet 8 - Bit 4) Write Authentication Enable (Octet 8 - Bit 5) Read Encryption Mode (Octet 8 - Bit 6)
Write Encryption Mode (Octet 8 - Bit 7)
Read Class of Device (Octet 9 - Bit 0)
Write Class of Device (Octet 9 - Bit 1)
Read Voice Setting (Octet 9 - Bit 2)
Write Voice Setting (Octet 9 - Bit 3)
Read Automatic Flush Timeout (Octet 9 - Bit 4) Write Automatic Flush Timeout (Octet 9 - Bit 5) Read Num Broadcast Retransmissions (Octet 9 - Bit 6) Write Num Broadcast Retransmissions (Octet 9 - Bit 7) Read Hold Mode Activity (Octet 10 - Bit 0) Write Hold Mode Activity (Octet 10 - Bit 1) Read Transmit Power Level (Octet 10 - Bit 2) Read Sync Flow Control Enable (Octet 10 - Bit 3) Write Sync Flow Control Enable (Octet 10 - Bit 4) Set Controller To Host Flow Control (Octet 10 - Bit 5) Host Buffer Size (Octet 10 - Bit 6)
Host Number of Completed Packets (Octet 10 - Bit 7) Read Link Supervision Timeout (Octet 11 - Bit 0) Write Link Supervision Timeout (Octet 11 - Bit 1) Read Number of Supported IAC (Octet 11 - Bit 2) Read Current IAC LAP (Octet 11 - Bit 3)
Write Current IAC LAP (Octet 11 - Bit 4)
Read Page Scan Period Mode (Octet 11 - Bit 5) Write Page Scan Period Mode (Octet 11 - Bit 6) Read Page Scan Mode (Octet 11 - Bit 7)
Write Page Scan Mode (Octet 12 - Bit 0)
Set AFH Host Channel Classification (Octet 12 - Bit 1) Read Inquiry Scan Type (Octet 12 - Bit 4) Write Inquiry Scan Type (Octet 12 - Bit 5) Read Inquiry Mode (Octet 12 - Bit 6)
Write Inquiry Mode (Octet 12 - Bit 7)
Read Page Scan Type (Octet 13 - Bit 0)
Write Page Scan Type (Octet 13 - Bit 1)
Read AFH Channel Assessment Mode (Octet 13 - Bit 2) Write AFH Channel Assessment Mode (Octet 13 - Bit 3) Read Local Version Information (Octet 14 - Bit 3) Read Local Supported Features (Octet 14 - Bit 5) Read Local Extended Features (Octet 14 - Bit 6) Read Buffer Size (Octet 14 - Bit 7)
Read Country Code (Octet 15 - Bit 0)
Read BD ADDR (Octet 15 - Bit 1)
Read Failed Contact Counter (Octet 15 - Bit 2) Reset Failed Contact Counter (Octet 15 - Bit 3) Read Link Quality (Octet 15 - Bit 4)
Read RSSI (Octet 15 - Bit 5)
Read AFH Channel Map (Octet 15 - Bit 6)
Read Clock (Octet 15 - Bit 7)
Read Loopback Mode (Octet 16 - Bit 0)
Write Loopback Mode (Octet 16 - Bit 1)
Enable Device Under Test Mode (Octet 16 - Bit 2) Setup Synchronous Connection (Octet 16 - Bit 3) Accept Synchronous Connection Request (Octet 16 - Bit 4) Reject Synchronous Connection Request (Octet 16 - Bit 5)
< HCI Command: Set Event Mask (0x03|0x0001) plen 8 [hci0] 0.371271
Mask: 0x00001807fffbffff
Inquiry Complete
Inquiry Result
Connection Complete
Connection Request
Disconnection Complete
Authentication Complete
Remote Name Request Complete
Encryption Change
Change Connection Link Key Complete
Master Link Key Complete
Read Remote Supported Features Complete
Read Remote Version Information Complete
QoS Setup Complete
Command Complete
Command Status
Hardware Error
Flush Occurred
Role Change
Mode Change
Return Link Keys
PIN Code Request
Link Key Request
Link Key Notification
Loopback Command
Data Buffer Overflow
Max Slots Change
Read Clock Offset Complete
Connection Packet Type Changed
QoS Violation
Page Scan Mode Change
Page Scan Repetition Mode Change
Flow Specification Complete
Inquiry Result with RSSI
Read Remote Extended Features Complete Synchronous Connection Complete
Synchronous Connection Changed

Quoted 1 line

HCI Event: Command Complete (0x0e) plen 4 [hci0] 0.374201

      Set Event Mask (0x03|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7        [hci0] 0.374241
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 8 [hci0] 0.377198

Read Stored Link Key (0x03|0x000d) ncmd 1
Status: Unsupported Feature or Parameter Value (0x11) Max num keys: 0
Num keys: 0
= Delete Index: 00:00:00:00:00:00 [hci0] 5.433491

maintainer
#1 lore raw

Hi Norbert,

Quoted 28 lines

My bluetooth usb-stick worked fine with kernel up to 3.19. With 4.x there is no hci device found.

lsusb
Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

hcitool dev
Devices:

sudo hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:15:83:15:A3:0B ACL MTU: 672:4 SCO MTU: 48:1 DOWN
RX bytes:890 acl:0 sco:0 events:30 errors:0
TX bytes:126 acl:0 sco:0 commands:30 errors:0

sudo hciconfig hci0 up
Can't init device hci0: Operation not supported (95)

rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

Quoted 1 line

Is this a regression. Or does it work in different way with 4.x?

your controller has this issue:

< HCI Command: Read Stored Link Key (0x03|0x000d) plen 7

        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        Read all: 0x01
Quoted 1 line

HCI Event: Command Complete (0x0e) plen 8

Read Stored Link Key (0x03|0x000d) ncmd 1
Status: Unsupported Feature or Parameter Value (0x11) Max num keys: 0
Num keys: 0

When this command fails for whatever reason, the power on procedure fails. It is indicated that this command is supported, but it seems that this actually not fully true.

Please report the section from /sys/kernel/debug/usb/devices that corresponds to your device.

Regards

Marcel

#2 lore raw

Hello Marcel,

thanks for the fast reply.

Am 09.08.2015 um 19:44 schrieb Marcel Holtmann:

Quoted 1 line

Please report the section from /sys/kernel/debug/usb/devices that corresponds to your device.

T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=16 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev= 1.34
C:* #Ifs= 2 Cfg#= 1 Atr=80 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

Regards,

Norbert

#3 lore raw

Hello!  Is it possible to add a quirk or something else?   Regrads,   Norbert   Gesendet: Sonntag, 09. August 2015 um 19:57 Uhr Von: "Norbert Holze" <[email protected]>
An: "Marcel Holtmann" <[email protected]>
Cc: [email protected]
Betreff: Re: btusb regression / 0a12:0001 CSR Hello Marcel,

thanks for the fast reply.

Am 09.08.2015 um 19:44 schrieb Marcel Holtmann:

Quoted 1 line

Please report the section from /sys/kernel/debug/usb/devices that corresponds to your device.

T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=16 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev= 1.34
C:* #Ifs= 2 Cfg#= 1 Atr=80 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

Regards,

Norbert

#4 lore raw
In reply to Norbert Holze

Hello!

Is it possible to add a quirk or something else?

Regrads,

Norbert

*Gesendet:* Sonntag, 09. August 2015 um 19:57 Uhr
*Von:* "Norbert Holze" <[email protected]>
*An:* "Marcel Holtmann" <[email protected]>
*Cc:* [email protected]
*Betreff:* Re: btusb regression / 0a12:0001 CSR
Hello Marcel,

thanks for the fast reply.

Am 09.08.2015 um 19:44 schrieb Marcel Holtmann:

Quoted 1 line

Please report the section from /sys/kernel/debug/usb/devices that

corresponds to your device.

T: Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=16 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev= 1.34
C:* #Ifs= 2 Cfg#= 1 Atr=80 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

Regards,

Norbert

#5 lore raw

Hi Norbert,

Quoted 1 line · Norbert Holze

Is it possible to add a quirk or something else?

This was reported in the kernel.org bug tracker as well. Could you try the patch proposal that I've attached there:

https://bugzilla.kernel.org/show_bug.cgi?id=103451

In the bug report it's just a single patch but I'll probably split it into two for the final upstream submission.

Johan