[PATCH v3 0/2] Bluetooth: hci_qca: Reopen port after power on for QCA2066

From: Shuai Zhang

Date: Wed Oct 28 2026 - 07:19:29 EST


QCA2066 needs the serial port reopened after the controller is powered
on, otherwise the host and the controller run into RTS/CTS
synchronization issues.

Patch 1 reopens the port in qca_power_on() for QCA2066, as in v2.

Patch 2 keeps HCI_UART_PROTO_READY in sync with the port state, so that a
port which failed to reopen is not closed or flushed again.

Changes in v3:
- Patch 1 is unchanged from v2.
- Add patch 2. If serdev_device_open() fails during the reopen, the
port stays closed but HCI_UART_PROTO_READY stays set, so the later
serdev_device_close() and hci_uart_flush() use a closed port. Keep
the flag in sync with the port state and skip the port flush when
the port is not open.
- Link to v2:
https://lore.kernel.org/all/20261016022302.4003647-1-shuai.zhang@xxxxxxxxxxxxxxxx/

Changes in v2:
- Use a separate case for clearer logic.
- Link to v1:
https://lore.kernel.org/all/20261015092224.262158-1-shuai.zhang@xxxxxxxxxxxxxxxx/

Shuai Zhang (2):
Bluetooth: hci_qca: Reopen port after power on for QCA2066
Bluetooth: hci_qca: Don't use the serdev port after a failed reopen

drivers/bluetooth/hci_qca.c | 46 +++++++++++++++++++++++++++++-----
drivers/bluetooth/hci_serdev.c | 6 +++--
2 files changed, 44 insertions(+), 8 deletions(-)

--
2.34.1