All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Young Tae Kim <ytkim@qca.qualcomm.com>
To: Sumit Khanna <sumdog@battlepenguin.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	"Huang, Rick" <rickh@qti.qualcomm.com>
Cc: <linux-bluetooth@vger.kernel.org>
Subject: Re: ath3k Bluetooth adapter not loading: [0cf3:3004] Atheros Communications, Inc. AR3012 Bluetooth 4.0
Date: Wed, 17 Jun 2015 11:54:33 -0700	[thread overview]
Message-ID: <5581C269.5020401@qca.qualcomm.com> (raw)
In-Reply-To: <55816F6D.3030706@battlepenguin.com>

Hi Sumit,

On 06/17/15 06:00, Sumit Khanna wrote:
> 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@vger.kernel.org
>>>>>> 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@vger.kernel.org
>>>> 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
>

You did right thing. I cannot understand why driver couldn't access firmware file which is in /lib/firmware/qca. Did you check each folder has right permission to access?

Thanks
-- Ben Kim

  reply	other threads:[~2015-06-17 18:54 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-26 14:44 ath3k Bluetooth adapter not loading: [0cf3:3004] Atheros Communications, Inc. AR3012 Bluetooth 4.0 Sumit's Mailing Lists
2015-06-06  6:16 ` Marcel Holtmann
2015-06-15 12:05   ` Sumit's Mailing Lists
2015-06-15 13:55     ` Marcel Holtmann
2015-06-15 14:16       ` Sumit's Mailing Lists
2015-06-15 16:57         ` Ben Young Tae Kim
2015-06-15 17:48           ` Sumit's Mailing Lists
2015-06-16 20:52             ` Ben Young Tae Kim
2015-06-17  9:36               ` Marcel Holtmann
2015-06-17 18:34                 ` Ben Young Tae Kim
2015-06-17 12:46               ` Sumit's Mailing Lists
2015-06-17 13:00                 ` Sumit Khanna
2015-06-17 18:54                   ` Ben Young Tae Kim [this message]
2015-06-18  2:36                     ` Sumit's Mailing Lists
2015-06-18  2:53                       ` Kim, Ben Young Tae
2015-06-18  3:01                         ` Sumit's Mailing Lists
2015-06-18 16:00                           ` Ben Young Tae Kim
2015-06-18 16:33                             ` Sumit's Mailing Lists
2015-06-18 16:37                               ` Ben Young Tae Kim
2015-06-19  5:04                                 ` Sumit's Mailing Lists
2015-06-30 14:05                                 ` Sumit's Mailing Lists
2015-07-01  0:08                                   ` Ben Young Tae Kim
2015-12-11 21:16                                     ` Sumit's Mailing Lists
2015-06-18  3:02                         ` Sumit's Mailing Lists
2015-06-18  5:53                           ` Kim, Ben Young Tae
2015-06-18  8:45                             ` Sumit's Mailing Lists
2015-06-18 10:09                               ` Huang, Rick
  -- strict thread matches above, loose matches on Subject: below --
2015-11-01  0:55 Clément de l'Hamaide
2015-05-26 12:25 Sumit's Mailing Lists

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5581C269.5020401@qca.qualcomm.com \
    --to=ytkim@qca.qualcomm.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=rickh@qti.qualcomm.com \
    --cc=sumdog@battlepenguin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.