Re: ath3k Bluetooth adapter not loading: [0cf3:3004] Atheros Communications, Inc. AR3012 Bluetooth 4.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 17/06/15 20:46, Sumit's Mailing Lists wrote:
> On 17/06/15 04:52, Ben Young Tae Kim wrote:
>> Hi Sumit,
>>
>> On 06/15/15 10:48, Sumit's Mailing Lists wrote:
>>> On 16/06/15 00:57, Ben Young Tae Kim wrote:
>>>> Hi Sumit,
>>>>
>>>>
>>>> On 06/15/15 07:16, Sumit's Mailing Lists wrote:
>>>>> On 15/06/15 21:55, Marcel Holtmann wrote:
>>>>>> Hi Smuit,
>>>>>>
>>>>>>>>> I'm currently using an MSI WS60 laptop which contains the following
>>>>>>>>> Bluetooth controller (from lsusb):
>>>>>>>>>
>>>>>>>>> Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012
>>>>>>>>> Bluetooth 4.0
>>>>>>>> assuming that the firmware is present, this is most likely just missing the right VID/PID additions in the drivers. Please prepare a patch for that.
>>>>>>>>
>>>>>>>>> and the more detailed version:
>>>>>>>>>
>>>>>>>>> Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012
>>>>>>>>> Bluetooth 4.0
>>>>>>>>> Device Descriptor:
>>>>>>>>> bLength                18
>>>>>>>>> bDescriptorType         1
>>>>>>>>> bcdUSB               1.10
>>>>>>>>> bDeviceClass          224 Wireless
>>>>>>>>> bDeviceSubClass         1 Radio Frequency
>>>>>>>>> bDeviceProtocol         1 Bluetooth
>>>>>>>>> bMaxPacketSize0        64
>>>>>>>>> idVendor           0x0cf3 Atheros Communications, Inc.
>>>>>>>>> idProduct          0x3004 AR3012 Bluetooth 4.0
>>>>>>>>> bcdDevice            0.01
>>>>>>>>> iManufacturer           0
>>>>>>>>> iProduct                0
>>>>>>>>> iSerial                 0
>>>>>>>>> bNumConfigurations      1
>>>>>>>>> Configuration Descriptor:
>>>>>>>> I actually prefer /sys/kernel/debug/usb/devices output for the devices.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>>
>>>>>>>> Marcel
>>>>>>>>
>>>>>>> Here is the output from /sys/kernel/debug/usb/devices for my ath3k (also
>>>>>>> added it to the kernel bugzilla):
>>>>>>>
>>>>>>> T:  Bus=03 Lev=02 Prnt=02 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=3004 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=(none)
>>>>>>> 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=(none)
>>>>>>> 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=(none)
>>>>>>> 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=(none)
>>>>>>> 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=(none)
>>>>>>> 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=(none)
>>>>>>> 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=(none)
>>>>>>> E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
>>>>>>> E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
>>>>>>>
>>>>>>> and the firmware the kernel is trying to load:
>>>>>>>
>>>>>>> [  762.729370] usb 3-1.3: Direct firmware load for
>>>>>>> ar3k/AthrBT_0x00000200.dfu failed with error -2
>>>>>>> [  762.729373] Bluetooth: Patch file not found ar3k/AthrBT_0x00000200.dfu
>>>>>>> [  762.729374] Bluetooth: Loading patch file failed
>>>>>>> [  762.729381] ath3k: probe of 3-1.3:1.0 failed with error -2
>>>>>>> [  762.729411] usbcore: registered new interface driver ath3k
>>>>>> I fail to see that firmware in linux-firmware tree. However this up to Atheros / Qualcomm to submit there. I can not do much about this.
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>> Marcel
>>>>>>
>>>>> Marcel,
>>>>>
>>>>> So it's pulling the right firmware file for my device, but It just
>>>>> hasn't been released yet?
>>>>>
>>>>> I know with the Wi-Fi firmware, the ath10k devs had python scripts to
>>>>> extract the firmware binaries from the Windows drivers (mentioned in
>>>>> here https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1383184). Has
>>>>> anyone done that before with the bluetooth firmware, or do you typically
>>>>> just wait for atheros/qualcom to release official ones?
>>>> Where did you get your atheros board/card since I couldn't find that board here. Is it a laptop? The BT firmware driver was trying to load AthrBT_0x00000200.dfu file and it got failed because no firmware file was present. But 0x00000200 means fw_version.rom_version which coming from controller chip, however, I haven't seen this version on Atheros chipset.
>>>>
>>>> I'm adding my friend - Rick Huang here. He may help you out
>>>>
>>>> Hi Rick,
>>>>
>>>> Have you seen rom_version as 0x00000200?
>>>>
>>>>> Sumit
>>>>> --
>>>>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>> Thanks
>>>> -- Ben Kim
>>>>
>>> Yes, It's an MSI WS-60 Laptop, purchased two months ago in Australia. Is
>>> there any other debugging information I need to pull for you?
>>>
>>> Sumit
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> According to my colleague, it is not AR chip but QCA ROME core inside even though they're sharing same VID/PID with AR/QCA ROME(version 2). That's why you cannot bring up your card with ath3k driver. I knew it was not a good idea as it was early stage to develop the card so that next version of ROME USB card(v3.0 or v3.2) will use different PID/VID as you can see below.
>>
>> Can you follow up these instructions to see whether or not it can be addressed on your setup?
>>
>> --
>> 1. put this code in drivers/bluetooth/btusb.c
>>
>> static const struct usb_device_id blacklist_table[] = {
>> ...
>>     /* QCA ROME chipset */
>>     { USB_DEVICE(0x0cf3, 0xe300), .driver_info = BTUSB_QCA_ROME },
>>     { USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME },
>>     { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_QCA_ROME }, // <-- add new VID/PID here
>> ...
>>
>> 2. Copy firmware files into /lib/firmware/qca
>>  - nvm_usb_00000200.bin
>>  - rampatch_usb_00000200.bin
>> Those FW files won't be available on linux-firmware.git til today but it it will be available soon I believe.
>> --
>>
>> Thanks
>> -- Ben Kim
>>
>>  
>>
> Hi Ben,
>
> I added that line to my btusb.c; did a mrpropery, copied my .config back
> into the source tree, disabled ATH3K in menucofnig, made the bzImage and
> rebooted. The firmware you attached is in /lib/firmware/qca.
>
> I enabled debugging (FLAGS_btusb.o := -DDEBUG in the Makefile) so I
> could get some more info, and discovered I also have to delete this line
> or it will match the ath first:
>
> { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }
>
> So then I saw
>
> [    1.263991] usb 3-1.3: new full-speed USB device number 3 using ehci-pci
> [    1.277022] usb 4-1.8: new full-speed USB device number 3 using ehci-pci
> [    1.350050] usb 3-1.3: New USB device found, idVendor=0cf3,
> idProduct=3004
> [    1.350051] usb 3-1.3: New USB device strings: Mfr=0, Product=0,
> SerialNumber=0
> [    1.350461] intf ffff88041bf62400 id ffffffff81d83bc0
> [    1.350462] BT Device Info 0
> [    1.350463] BT Device Info (after matching) 32768
> [    1.350466] In Rome Block
> [    1.350546] input: ETPS/2 Elantech Touchpad as
> /devices/platform/i8042/serio1/input/input10
> [    1.350671] hci0
> [    1.350879] Bluetooth: hci0: don't support firmware rome 0x200
> [    1.364795] usb 4-1.8: New USB device found, idVendor=1770,
> idProduct=ff00
> [    1.364797] usb 4-1.8: New USB device strings: Mfr=1, Product=1,
> SerialNumber=1
> [    1.364798] usb 4-1.8: Product: MSI EPF USB
> [    1.364799] usb 4-1.8: Manufacturer: MSI EPF USB
> [    1.364800] usb 4-1.8: SerialNumber: MSI EPF USB
>
> So those BT Device Info statements I added in the probe function. "In
> Rome Block" I added right after "if (id->driver_info & BTUSB_QCA_ROME) "
> and you can see where that error comes from.
>
> And that comes from...oh it checks another table...okay so I added the
> following to qca_device_info
>
>         { 0x00000200, 28, 4, 18 },
>
> and now I get;
>
> [    1.357942] intf ffff88041ba5bc00 id ffffffff81d83bc0
> [    1.357943] BT Device Info 0
> [    1.357944] BT Device Info (after matching) 32768
> [    1.357946] In Rome Block
> [    1.358113] hci0
> [    1.358516] bluetooth hci0: Direct firmware load for
> qca/rampatch_usb_00000200.bin failed with error -2
> [    1.358517] Bluetooth: hci0: failed to request rampatch file:
> qca/rampatch_usb_00000200.bin (-2)
>
> So progress. It's attempting to load the firmware and failing. Are those
> the right numbers for the device_info block?
>
> Sumit
Just remembered -2 is when it can't even find the firmware. But I think
I have it installed right. Is this correct:

catelyn linux # ls /lib/firmware/qca/ -l
total 60
-rw-r--r-- 1 root root  1859 Jun 17 18:07 nvm_usb_00000200.bin
-rw-r--r-- 1 root root 54432 Jun 17 18:07 rampatch_usb_00000200.bin

catelyn linux # sha256sum /lib/firmware/qca/*
50cddc73c1a7c90bb3338941785d46088374b2aebf5dd1679c23145e39ad5087 
/lib/firmware/qca/nvm_usb_00000200.bin
7551fc3a01fe46514d4da265095aabf07371cf17418a9f238e51b0fc4e83cfc5 
/lib/firmware/qca/rampatch_usb_00000200.bin

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux