From 6f1ee6c41de9fc135b7401920e1497708950a34b Mon Sep 17 00:00:00 2001 From: Shuai Zhang Date: Thu, 5 Nov 2026 15:51:33 +0800 Subject: [PATCH] FROMLIST: Bluetooth: hci_qca: WCN3988: Drop baudrate change vendor event Firmware download on the WCN3988 sometimes fails and is retried: Bluetooth: hci0: QCA TLV response size mismatch Bluetooth: hci0: QCA Failed to request file: qca/apbtfw11.tlv (-84) The vendor event answering the baudrate change command can arrive late and is then taken as the response of the last firmware segment, which waits for any vendor event. Its length is 2 instead of the expected 3: < HCI Command: Vendor (0x3f|0x0000) plen 220 (last segment) > HCI Event: Vendor (0xff) plen 2 92 01 Drop and wait for this event on the WCN3988. Link: https://lore.kernel.org/all/20261104095026.3414666-1-shuai.zhang@oss.qualcomm.com/ Signed-off-by: Shuai Zhang Assisted-by: Claude:claude-sonnet-5-5 --- drivers/bluetooth/hci_qca.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c index 30a05f4dbac37..4f4fa5a60ef6f 100644 --- a/drivers/bluetooth/hci_qca.c +++ b/drivers/bluetooth/hci_qca.c @@ -1523,6 +1523,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type) } switch (soc_type) { + case QCA_WCN3988: case QCA_WCN3990: reinit_completion(&qca->drop_ev_comp); set_bit(QCA_DROP_VENDOR_EVENT, &qca->flags); @@ -1559,6 +1560,7 @@ static int qca_set_speed(struct hci_uart *hu, enum qca_speed_type speed_type) } switch (soc_type) { + case QCA_WCN3988: case QCA_WCN3990: /* Wait for the controller to send the vendor event * for the baudrate change command.