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?
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.