On 7/15/2025 5:12 PM, Konrad Dybcio wrote: > On 7/15/25 7:16 AM, Shuai Zhang wrote: >> After SSR, host will not download the firmware, causing >> controller to remain in the IBS_WAKE state. Host needs >> to synchronize with the controller to maintain proper operation. >> >> Signed-off-by: Shuai Zhang <quic_shuaz@xxxxxxxxxxx> >> --- >> drivers/bluetooth/hci_qca.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c >> index 791f8d472..a17d3f7ae 100644 >> --- a/drivers/bluetooth/hci_qca.c >> +++ b/drivers/bluetooth/hci_qca.c >> @@ -1658,10 +1658,14 @@ static void qca_hw_error(struct hci_dev *hdev, u8 code) >> * the QCA_SSR_TRIGGERED and QCA_IBS_DISABLED bits cannot be cleared. >> * This leads to a reset command timeout failure. >> * Also, add msleep delay to wait for controller to complete SSR. >> + * >> + * Host will not download the firmware after SSR, controller to remain >> + * in the IBS_WAKE state, and the host needs to synchronize with it >> */ >> if (!test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks)) { >> clear_bit(QCA_SSR_TRIGGERED, &qca->flags); >> clear_bit(QCA_IBS_DISABLED, &qca->flags); >> + qca->tx_ibs_state = HCI_IBS_TX_AWAKE; >> msleep(50); > > This touches upon the code introduced in the previous patch. > > Any reason they should be separate? > Since this is a different issue, I separated it. The same reason applies to patch 3/3. > Konrad Shuai