Re: Fedora 27 kernel and RPi3 Bluetooth oops

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

 



On Tue, Sep 19, 2017 at 11:07 AM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote:
> Hi Peter,
>
>>>>>>> the latest Fedora 27 kernel which has all the RPi3 patches applied doesn’t actually work. It provides this backlog.
>>>>>>>
>>>>>>> [  229.162921] CPU: 1 PID: 582 Comm: kworker/u9:1 Not tainted 4.13.2-300.fc27.armv7hl #1
>>>>>>> [  229.171285] Hardware name: Generic DT based system
>>>>>>> [  229.176774] Workqueue: hci0 hci_cmd_work [bluetooth]
>>>>>>> [  229.176774] Workqueue: hci0 hci_cmd_work [bluetooth]
>>>>>>> [  229.182117] [<c0312af4>] (unwind_backtrace) from [<c030d264>] (show_stack+0x18/0x1c)
>>>>>>> [  229.190374] [<c030d264>] (show_stack) from [<c0b66174>] (dump_stack+0xa0/0xd8)
>>>>>>> [  229.198122] [<c0b66174>] (dump_stack) from [<c03aeaec>] (register_lock_class+0x298/0x514)
>>>>>>> [  229.206835] [<c03aeaec>] (register_lock_class) from [<c03b1f9c>] (__lock_acquire+0xe4/0x1608)
>>>>>>> [  229.215952] [<c03b1f9c>] (__lock_acquire) from [<c03b3fd0>] (lock_acquire+0x280/0x2dc)
>>>>>>> [  229.224386] [<c03b3fd0>] (lock_acquire) from [<c0b80ba4>] (_raw_read_lock+0x4c/0x5c)
>>>>>>> [  229.232740] [<c0b80ba4>] (_raw_read_lock) from [<bf47903c>] (hci_uart_tx_wakeup+0x1c/0x98 [hci_uart])
>>>>>>> [  229.242725] [<bf47903c>] (hci_uart_tx_wakeup [hci_uart]) from [<bf47a0e0>] (hci_uart_send_frame+0x54/0x6c [hci_uart])
>>>>>>> [  229.254485] [<bf47a0e0>] (hci_uart_send_frame [hci_uart]) from [<bf3cb260>] (hci_send_frame+0xc8/0xf4 [bluetooth])
>>>>>>> [  229.266157] [<bf3cb260>] (hci_send_frame [bluetooth]) from [<bf3cb334>] (hci_cmd_work+0xa8/0x124 [bluetooth])
>>>>>>> [  229.277005] [<bf3cb334>] (hci_cmd_work [bluetooth]) from [<c036f154>] (process_one_work+0x43c/0x83c)
>>>>>>> [  229.286689] [<c036f154>] (process_one_work) from [<c0370934>] (worker_thread+0x290/0x40c)
>>>>>>> [  229.295355] [<c0370934>] (worker_thread) from [<c0376784>] (kthread+0x14c/0x168)
>>>>>>> [  229.303195] [<c0376784>] (kthread) from [<c03080d0>] (ret_from_fork+0x14/0x24)
>>>>>>>
>>>>>>> It results in the first HCI command going through and then every other failing.
>>>>>>>
>>>>>>> = Index Info: 00:00:00:00:00:00 (Broadcom Corporation)
>>>>>>> < HCI Command: Broadcom Update UART Baud Rate (0x3f|0x0018) plen 6
>>>>>>>      Encoded baud rate: Not used (0x0000)
>>>>>>>      Explicit baud rate: 2000000 Mbps
>>>>>>>> HCI Event: Command Complete (0x0e) plen 4
>>>>>>>    Broadcom Update UART Baud Rate (0x3f|0x0018) ncmd 1
>>>>>>>      Status: Success (0x00)
>>>>>>> < HCI Command: Reset (0x03|0x0003) plen 0
>>>>>>>
>>>>>>> The HCI Reset command actually times out.
>>>>>>>
>>>>>>> [  231.349802] Bluetooth: hci0 command 0x0c03 tx timeout
>>>>>>>
>>>>>>> What we really need is some kernel specific debug tracing when driver change baud rate etc. to show up in btmon. Drivers need the capability to insert HCI transport level specifics into monitoring interface.
>>>>>>
>>>>>> Thanks for noticing this, I've have that exact backlog sitting there
>>>>>> to send out but I'd just not got to it yet, let me know if there's
>>>>>> anything that needs tweaking on the Fedora side or patch.
>>>>>
>>>>> does it actually work for you? I didn’t get it running with the F27 kernel. I had issues with the initial baud rate using btattach in some cases. Does this go away if you use 115200 as max baud rate?
>>>>
>>>> No, not yet, I got to the point it would see an interface but that
>>>> didn't have a MAC address, the patch series has also done something
>>>> weird with serial consoles that I need to debug. I was wondering if it
>>>> still needs the newer firmware rev that various distros have pulled
>>>> in.
>>>
>>> is that the AA:AA:AA.. address? If so, we really need to blacklist that one and mark it with quirk for invalid BD_ADDR. However I am not even getting that far since the command above is the first command send to the hardware.
>>
>> No, it's all zeros, I'll try and spend some time on it this afternoon
>> to reproduce what I was getting.
>
> please check if using 115200 baud rate does anything to make this work. At least that is what I had when testing this with btattach. It needed to be 115200 and otherwise it would fail.
>
> We can load the firmware at 115200 and only switch later to a higher rate. Maybe there are subtle difference in the default firmwares of the Bluetooth controller in the RPi3.
>
> Loic said that he had it working with a bluetooth-next and his patches. That is something I have not succeeded with yet.

So testing on a 32 bit image bluetoothctl doesn't see a controller,
but hciconfig shows a controller with a zero mac, on a 64 bit image I
see nothing using either method.

# hciconfig
hci0:   Type: Primary  Bus: UART
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:14 acl:0 sco:0 events:1 errors:0
        TX bytes:14 acl:0 sco:0 commands:2 errors:0

Hans added a script to automatically btattch some bcm controllers for
atom devices, maybe we need to add more IDs for udev, not sure if
there's a means of making that generic and upstreamable. Also some of
the other distro patches I've seen had a different BT firmware, not
sure if Loic needed that or not.

https://src.fedoraproject.org/rpms/bluez/c/9089a629a195699747b1da0fa712e7aee76d7a90?branch=master
--
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