* Sebastian Reichel <sre@xxxxxxxxxx> [200214 17:20]: > Hi, > > WTF :( > > Right now the BT driver and the WiFi driver are no aware of > each other. Actually the kernel is not even aware, that both > drivers are using the same chip. Unfortunately this will be > tricky to solve properly. Since a system may have two WiLink > devices, the only solution coming to my mind would be adding > a link from the BT device to the WiFi device in device tree. > Additionally we would need something in the WiLink driver to > check if driver has been initialized properly for a given DT > node. Yeah exactly.. I think the best way would be to export something like wlcore_register_bt/wlcore_unregister_bt.. And then have wlcore_register_bt return -EAGAIN until wlcore is up. > On Fri, Feb 14, 2020 at 12:54:50AM +0300, Arthur D. wrote: > > Hello. > > > > Some users have reported that they have issues with WiFi firmware > > loading on Droid 4. The fragment of dmesg for the issue follows > > at the bottom of this mail. > > > > With the help of Tony Lindgren I have found that the root of the > > issue was Bluetooth firmware loaded before WiFi driver (wlcore). > > > > Now we need to change the kernel to make it load Bluetooth firmware > > only after WiFi firmware is loaded. So the bug will not be triggered. > > > > Any ideas on how it should be done? > > > > P.S. When I do "rmmod hci_uart" on Droid 4 device, I get something > > like endless loop of error reporting from kernel. The fragment of > > dmesg can be downloaded from https://dropmefiles.com/wCPMF > > I'm not sure where to report this one. Yup I've seen rmmod hci_uart produce kernel oops, but I just tried to reproduce it again on v5.5 and it just took a long time to rmmod with no oops. Regards, Tony 8< --------------- # dmesg -C; modprobe hci_uart; sleep 5; rmmod hci_uart; dmesg -c [ 616.926422] Bluetooth: HCI UART driver ver 2.3 [ 616.926422] Bluetooth: HCI UART protocol H4 registered [ 616.926422] Bluetooth: HCI UART protocol BCSP registered [ 616.926513] Bluetooth: HCI UART protocol LL registered [ 616.926635] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 616.927185] Bluetooth: HCI UART protocol Broadcom registered [ 616.927764] hci-ti serial1-0: GPIO lookup for consumer enable [ 616.927764] hci-ti serial1-0: using device tree for GPIO lookup [ 616.927856] of_get_named_gpiod_flags: parsed 'enable-gpios' property of node '/ocp/interconnect@48000000/segment@0/target-module@6e000/serial@0/bluetooth[0]' - status (0) [ 616.927886] gpio gpiochip6: Persistence not supported for GPIO 14 [ 624.002838] Bluetooth: hci0: command 0xff05 tx timeout [ 632.572662] Bluetooth: hci0: send command failed [ 632.572814] Bluetooth: hci0: download firmware failed, retrying... [ 634.722991] Bluetooth: hci0: command 0x1001 tx timeout [ 642.812652] Bluetooth: hci0: Reading TI version information failed (-110) [ 642.812652] Bluetooth: hci0: download firmware failed, retrying... [ 644.962707] Bluetooth: hci0: command 0x1001 tx timeout [ 653.043151] Bluetooth: hci0: Reading TI version information failed (-110) [ 653.043182] Bluetooth: hci0: download firmware failed, retrying... [ 655.203582] Bluetooth: hci0: command 0x1001 tx timeout [ 663.294372] Bluetooth: hci0: Reading TI version information failed (-110) [ 663.294464] Bluetooth: hci0: download firmware failed, retrying...