Initialization of the QCA WCN3990 often fails at boot time: [ 15.205224] Bluetooth: hci0: setting up wcn3990 [ 17.341062] Bluetooth: hci0: command 0xfc00 tx timeout [ 22.101453] ERROR: Bluetooth initialization failed [ 25.337740] Bluetooth: hci0: Reading QCA version information failed (-110) A short delay after sending a power-off pulse (which is done immediately before sending a power-on pulse) fixes this. Also move the delays to qca_send_power_pulse(), since they are directly related with sending the pulses. Change the interface of qca_send_power_pulse() to receive a boolean instead of a power pulse command, this improves readability of the function with the delays added. Matthias Kaehlcke (3): Bluetooth: hci_qca: Pass boolean 'on/off' to qca_send_power_pulse() Bluetooth: hci_qca: Move boot delay to qca_send_power_pulse() Bluetooth: hci_qca: Add delay after power-off pulse drivers/bluetooth/hci_qca.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) -- 2.21.0.rc2.261.ga7da99ff1b-goog