| From b131237ca3995edad9efc162d0bc959c3b1dddc2 Mon Sep 17 00:00:00 2001 |
| From: Oliver Neukum <oliver@neukum.org> |
| Date: Thu, 16 Jan 2014 15:37:11 +0100 |
| Subject: Bluetooth: Enable Atheros 0cf3:311e for firmware upload |
| |
| From: Oliver Neukum <oliver@neukum.org> |
| |
| commit b131237ca3995edad9efc162d0bc959c3b1dddc2 upstream. |
| |
| The device will bind to btusb without firmware, but with the original |
| buggy firmware device discovery does not work. No devices are detected. |
| |
| Device descriptor without firmware: |
| T: Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 |
| D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 |
| P: Vendor=0cf3 ProdID=311e Rev= 0.01 |
| C:* #Ifs= 2 Cfg#= 1 Atr=e0 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 |
| I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb |
| E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms |
| E: Ad=03(O) 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=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms |
| E: Ad=03(O) 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=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms |
| E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms |
| |
| with firmware: |
| T: Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 |
| D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 |
| P: Vendor=0cf3 ProdID=311e Rev= 0.02 |
| C:* #Ifs= 2 Cfg#= 1 Atr=e0 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 |
| I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb |
| E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms |
| E: Ad=03(O) 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=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms |
| E: Ad=03(O) 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=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms |
| E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms |
| |
| Signed-off-by: Oliver Neukum <oneukum@suse.de> |
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/bluetooth/ath3k.c | 2 ++ |
| drivers/bluetooth/btusb.c | 1 + |
| 2 files changed, 3 insertions(+) |
| |
| --- a/drivers/bluetooth/ath3k.c |
| +++ b/drivers/bluetooth/ath3k.c |
| @@ -77,6 +77,7 @@ static struct usb_device_id ath3k_table[ |
| { USB_DEVICE(0x0CF3, 0x3004) }, |
| { USB_DEVICE(0x0CF3, 0x3008) }, |
| { USB_DEVICE(0x0CF3, 0x311D) }, |
| + { USB_DEVICE(0x0CF3, 0x311E) }, |
| { USB_DEVICE(0x0CF3, 0x817a) }, |
| { USB_DEVICE(0x13d3, 0x3375) }, |
| { USB_DEVICE(0x04CA, 0x3004) }, |
| @@ -120,6 +121,7 @@ static struct usb_device_id ath3k_blist_ |
| { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 }, |
| + { USB_DEVICE(0x0cf3, 0x311E), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0CF3, 0x817a), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, |
| --- a/drivers/bluetooth/btusb.c |
| +++ b/drivers/bluetooth/btusb.c |
| @@ -141,6 +141,7 @@ static struct usb_device_id blacklist_ta |
| { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 }, |
| + { USB_DEVICE(0x0cf3, 0x311e), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x0cf3, 0x817a), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, |
| { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, |