[PATCH 3/4] ARM: dts: bcm2835-rpi-zero-w: Add bcm43438 serial slave

Marcel Holtmann marcel at holtmann.org
Thu Mar 8 04:08:35 PST 2018


Hi Lukas,

>>>>>>>> after applying Loic's patch and the necessary patch for the
>>>>>>>> RPi 3 dts file (see below), i will get this output:
>>>>>>>> 
>>>>>>>> [    4.873246] Bluetooth: HCI UART driver ver 2.3
>>>>>>>> [    4.873260] Bluetooth: HCI UART protocol H4 registered
>>>>>>>> [    4.873265] Bluetooth: HCI UART protocol Three-wire (H5) registered
>>>>>>>> [    4.873751] Bluetooth: HCI UART protocol Broadcom registered
>>>>>>>> [    4.877279] uart-pl011 3f201000.serial: no DMA platform data
>>>>>>>> [    6.952382] Bluetooth: hci0: command 0xfc18 tx timeout
>>>>>>>> [   15.192298] Bluetooth: hci0: BCM: failed to write update baudrate (-110)
>>>>>>>> [   15.192312] Bluetooth: hci0: Failed to set baudrate
>>>>>>>> [   15.316415] Bluetooth: hci0: BCM: chip id 94
>>>>>>>> [   15.318567] Bluetooth: hci0: BCM: features 0x2e
>>>>>>>> [   15.341538] Bluetooth: hci0: BCM43430A1
>>>>>>>> [   15.341560] Bluetooth: hci0: BCM43430A1 (001.002.009) build 0000
>>>>>>>> [   19.112670] Bluetooth: hci0: BCM (001.002.009) build 0360
>>>>>>>> [  274.713732] Bluetooth: hci0: command 0x0c14 tx timeout
>>>>>>>> [  274.714085] Bluetooth: hci0: Frame reassembly failed (-84)
>>>>>>>> [  317.275941] Bluetooth: hci0: last event is not cmd complete (0x0f)
>>>>>>>> 
>>>>>>>> I don't see these errors on RPi Zero W. Maybe the reason for
>>>>>>>> this is the lack of hardware flowcontrol on RPi 3.
>>>>>>> 
>>>>>>> maybe it needs some time after switching the hardware on. Have
>>>>>>> you tried to sleep for a bit at the end of bcm_gpio_set_power?
>> 
>> after applying this patch [1] the RPi 3 specific probing errors disappear.
>> 
>> But this is only a quick hack. The proper solution would be to extend
>> hci_h5 in order to support the BCM43438.
>> 
>> [1] - https://github.com/lategoodbye/rpi-zero/commit/ed5900296dfb7aec7f467477440751e7367a1881
> 
> Users of the MacBookPro13,1 and MacBookPro14,1 are reporting similar
> timeouts when the Bluetooth controller is reset on ->setup.
> 
> These are the models without touchbar.  The models with touchbar
> (MBP13,2, MBP13,3, MBP14,2, MBP14,3) as well as the 12" MacBooks
> (MB8,1, MB9,1, MB10,1) do not suffer from this issue.
> 
> Christoph Gysin (+cc) reports that applying your patch on 4.16-rc4 gets
> Bluetooth working on his MBP13,1:
> https://github.com/Dunedan/mbp-2016-linux/issues/29#issuecomment-371434970
> 
> For some reason, not toggling the device_wake pin in bcm_gpio_set_power()
> also fixed the issue for those users.  They did complain about stuttering
> audio though.
> 
> Users of the touchbar models reported that stuttering audio only occurs
> when the GNOME Bluetooth control panel is open. Closing it made the
> stuttering audio go away.  But apparently on the non-touchbar models,
> the stuttering persisted regardless.  Both the stuttering audio as well as
> the timeouts on ->setup might be explained by a lack of hardware flow
> control on those models.  The chipset (and thus the UART) is identical
> on the touchbar versus non-touchbar models.  It would seem odd if Apple
> did not wire CTS consistently on all models.

do you know if Apple is actually running H:4 or if they run H:5 (3-Wire) within macOS. I think the Broadcom chips will auto-detect the transport protocol. At least on the RPi3 it seems like that.

Regards

Marcel




More information about the linux-arm-kernel mailing list