summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey Hugo <jeffrey.l.hugo@gmail.com>2019-10-17 14:29:55 -0700
committerMarcel Holtmann <marcel@holtmann.org>2019-10-17 11:10:06 +0200
commitcde9dde6e11a5ab54b6462cd46d82878926783bc (patch)
tree0e8f082fa69c1b2825b0cd60e49f6a42e6ca0e3a
parentb9a2562f4918c557f664fbba215122aca3cbb2fe (diff)
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>
-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