summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorJeffrey Hugo <jeffrey.l.hugo@gmail.com>2019-10-17 23:29:55 +0200
committerMarcel Holtmann <marcel@holtmann.org>2019-10-17 11:10:06 +0200
commitcde9dde6e11a5ab54b6462cd46d82878926783bc (patch)
tree0e8f082fa69c1b2825b0cd60e49f6a42e6ca0e3a /drivers/bluetooth
parentBluetooth: btusb: Trigger Intel FW download error recovery (diff)
downloadlinux-cde9dde6e11a5ab54b6462cd46d82878926783bc.tar.xz
linux-cde9dde6e11a5ab54b6462cd46d82878926783bc.zip
Bluetooth: hci_qca: Add delay for wcn3990 stability
On the msm8998 mtp, the response to the baudrate change command is never received. On the Lenovo Miix 630, the response to the baudrate change command is corrupted - "Frame reassembly failed (-84)". Adding a 50ms delay before re-enabling flow to receive the baudrate change command response from the wcn3990 addesses both issues, and allows bluetooth to become functional. Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/hci_qca.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index e3164c200eac..265fc60c3850 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -1156,8 +1156,10 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type)
host_set_baudrate(hu, speed);
error:
- if (qca_is_wcn399x(soc_type))
+ if (qca_is_wcn399x(soc_type)) {
+ msleep(50);
hci_uart_set_flow_control(hu, false);
+ }
if (soc_type == QCA_WCN3990) {
/* Wait for the controller to send the vendor event