Return-Path: Message-ID: <1351129589.50995.YahooMailNeo@web125405.mail.ne1.yahoo.com> Date: Wed, 24 Oct 2012 18:46:29 -0700 (PDT) From: Dwaine Garden VE3GIF Reply-To: Dwaine Garden VE3GIF Subject: [PATCH] Bluetooth: Add support for Atheros [04ca:3004] To: "linux-bluetooth@vger.kernel.org" Cc: Dwaine Garden MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Add another vendor specific ID for Atheros AR3012 device. This chip is wrapped by Lite-On Technology Corp. output of usb-devices: Bus 001 Device 008: ID 04ca:3004 Lite-On Technology Corp. Device Descriptor: ? bLength??????????????? 18 ? bDescriptorType???????? 1 ? bcdUSB?????????????? 1.10 ? bDeviceClass????????? 224 Wireless ? bDeviceSubClass???????? 1 Radio Frequency ? bDeviceProtocol???????? 1 Bluetooth ? bMaxPacketSize0??????? 64 ? idVendor?????????? 0x04ca Lite-On Technology Corp. ? idProduct????????? 0x3004 ? bcdDevice??????????? 0.02 ? iManufacturer?????????? 1 Atheros Communications ? iProduct??????????????? 2 Bluetooth USB Host Controller ? iSerial???????????????? 3 Alaska Day 2006 ? bNumConfigurations????? 1 ? Configuration Descriptor: ??? bLength???????????????? 9 ??? bDescriptorType???????? 2 ??? wTotalLength????????? 177 ??? bNumInterfaces????????? 2 ??? bConfigurationValue???? 1 ??? iConfiguration????????? 4 BT HCI ??? bmAttributes???????? 0xe0 ????? Self Powered ????? Remote Wakeup ??? 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?????????????? 1 ????? 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?????????????? 1 ??? 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 ??? Interface Descriptor: ????? bLength???????????????? 9 ????? bDescriptorType???????? 4 ????? bInterfaceNumber??????? 1 ????? bAlternateSetting?????? 3 ????? 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???? 0x0019? 1x 25 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???? 0x0019? 1x 25 bytes ??????? bInterval?????????????? 1 ??? Interface Descriptor: ????? bLength???????????????? 9 ????? bDescriptorType???????? 4 ????? bInterfaceNumber??????? 1 ????? bAlternateSetting?????? 4 ????? 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???? 0x0021? 1x 33 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???? 0x0021? 1x 33 bytes ??????? bInterval?????????????? 1 ??? Interface Descriptor: ????? bLength???????????????? 9 ????? bDescriptorType???????? 4 ????? bInterfaceNumber??????? 1 ????? bAlternateSetting?????? 5 ????? 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???? 0x0031? 1x 49 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???? 0x0031? 1x 49 bytes ??????? bInterval?????????????? 1 Device Status:???? 0x0003 ? Self Powered ? Remote Wakeup Enabled Signed-off-by: Dwaine Garden ? --- diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c index fc2de55..1486f15 100644 --- a/drivers/bluetooth/ath3k.c +++ b/drivers/bluetooth/ath3k.c @@ -75,6 +75,7 @@ static struct usb_device_id ath3k_table[] = { ??????? { USB_DEVICE(0x0CF3, 0x3004) }, ??????? { USB_DEVICE(0x0CF3, 0x311D) }, ??????? { USB_DEVICE(0x13d3, 0x3375) }, +????? { USB_DEVICE(0x04CA, 0x3004) }, ??????? { USB_DEVICE(0x04CA, 0x3005) }, ??????? { USB_DEVICE(0x13d3, 0x3362) }, ??????? { USB_DEVICE(0x0CF3, 0xE004) }, @@ -102,6 +103,7 @@ static struct usb_device_id ath3k_blist_tbl[] = { ??????? { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, +????? { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 }, diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index debda27..0529cee 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -132,6 +132,7 @@ static struct usb_device_id blacklist_table[] = { ??????? { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, +????? { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, ??????? { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 },