Bug 31162 - btusb: audio not supported on CW6622: please show message in dmesg
Summary: btusb: audio not supported on CW6622: please show message in dmesg
Status: RESOLVED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_bluetooth@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-03-16 08:01 UTC by Török Edwin
Modified: 2013-12-23 11:44 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.37.4
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments

Description Török Edwin 2011-03-16 08:01:52 UTC
Audio doesn't work with the CW6622 bluetooth usb dongle and kernel 2.6.37.4 on amd64. Initially I thought its a bluez-alsa bug:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=618509

But now I came across the fix for kernel bug #9027, which seems to have broken it.

If I make this change, then audio is working again, but of course bug #9027 is back (dmesg flooded):
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 700a384..7ef6eb4 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -146,7 +146,7 @@ static struct usb_device_id blacklist_table[] = {
        { USB_DEVICE(0x0400, 0x080a), .driver_info = BTUSB_BROKEN_ISOC },
 
        /* CONWISE Technology based adapters with buggy SCO support */
-       { USB_DEVICE(0x0e5e, 0x6622), .driver_info = BTUSB_BROKEN_ISOC },
+       { USB_DEVICE(0x0e5e, 0x6622), .driver_info = BTUSB_WRONG_SCO_MTU },
 
        /* Digianswer devices */
        { USB_DEVICE(0x08fd, 0x0001), .driver_info = BTUSB_DIGIANSWER },

dmesg flood looks like:
[  911.235590] hci_scodata_packet: hci0 SCO packet for unknown connection handle 20986
[  911.245590] hci_scodata_packet: hci0 SCO packet for unknown connection handle 20784
[  911.245602] hci_scodata_packet: hci0 SCO packet for unknown connection handle 92
[  911.255589] hci_scodata_packet: hci0 SCO packet for unknown connection handle 92
[  911.255600] hci_scodata_packet: hci0 SCO packet for unknown connection handle 92
[  911.255608] hci_scodata_packet: hci0 SCO packet for unknown connection handle 92
[  911.265547] hci_scodata_packet: hci0 SCO packet for unknown connection handle 92

And here's the lsusb:
Bus 004 Device 003: ID 0e5e:6622 Conwise Technology Co., Ltd. CW6622
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        16
  idVendor           0x0e5e Conwise Technology Co., Ltd.
  idProduct          0x6622 CW6622
  bcdDevice            1.34
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          108
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Not sure if the manufacturer is right, package says Reekin Bluetooth v2.0 100m ES-388, nothing on the device itself, the board of the device says MBT-503-03.

Is it possible to use some other flag in btusb.c to keep audio working, and not flood dmesg at same time?
Comment 1 Török Edwin 2011-04-10 14:03:01 UTC
Nevermind, audio sometimes works, sometimes doesn't at all, I think the original fix was right, this device is broken.
I bought another bluetooth usb dongle (different manufacturer), and it works great.

So regarding this bugreport: it would be nice if kernel showed a message in dmesg that audio is not supported on this device (because device is broken), so that one knows they should buy another device, instead of trying to figure out why the driver is buggy.

Note You need to log in before you can comment on or make changes to this bug.