summaryrefslogtreecommitdiff
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorMatthias Kaehlcke <mka@chromium.org>2019-02-26 11:46:47 -0800
committerMarcel Holtmann <marcel@holtmann.org>2019-02-27 08:44:33 +0100
commit0ebcddd8e06e94e476f4718af238e9ae67531b04 (patch)
treee6ad64e9d014cb203292792231d8c2f942184f41 /drivers/bluetooth
parentad571d725c9786a138d663fb26ae91d84e705900 (diff)
downloadlinux-rpi-0ebcddd8e06e94e476f4718af238e9ae67531b04.tar.gz
linux-rpi-0ebcddd8e06e94e476f4718af238e9ae67531b04.tar.bz2
linux-rpi-0ebcddd8e06e94e476f4718af238e9ae67531b04.zip
Bluetooth: hci_qca: Add delay after power-off pulse
During initialization the power-on pulse is currently sent inmediately after the prior power-off pulse. With this initialization 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) After a power-off pulse wait 10ms to give the controller time to power off. Remove the previous short settling delay, it isn't needed anymore. Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Reviewed-by: Balakrishna Godavarthi <bgodavar@codeaurora.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/hci_qca.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index bcc70352eb95..f56d2459ea19 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1031,13 +1031,13 @@ static int qca_send_power_pulse(struct hci_uart *hu, bool on)
}
serdev_device_wait_until_sent(hu->serdev, timeout);
-
- /* Wait for 100 uS for SoC to settle down */
- usleep_range(100, 200);
hci_uart_set_flow_control(hu, false);
+ /* Give to controller time to boot/shutdown */
if (on)
msleep(100);
+ else
+ msleep(10);
return 0;
}