Re: [PATCH v11 0/3] Bug fixes for Qualcomm BT chip wcn3990

From: Marcel Holtmann
Date: Mon Feb 18 2019 - 05:50:56 EST


Hi Balakrishna,

> The below issues are found in our recent testing.
>
> 1. Observed device is not going into off state or not responding.
> As wcn3990 require a power pulses to turn on the irrespctive of
> igniting regulators, it was observed that power on or power off
> pulses are not in sync with respective to chip.
> The below patch will help us to wait until byte is pushed on to wires.
>
> * Bluetooth: hci_qca: use wait_until_sent() for power pulses
>
> 2. Observed Chip responding when we are in sleep.
> This is due to turn on flow control during change baudrate request.
> The below patch will only pull the RTS line high instead of turning off
> the flow.
>
> * Bluetooth: hci_qca: Pull RTS line high for baudrate change command.
>
> 3. Disable IBS state machine and flush Tx buffer
> We are disabling IBS and flushing the Tx buffer before turning off the chip.
>
> This is due to IBS state machine is active when we turn off the chip.
> This will stop queuing IBS protocol bytes.
>
> * Bluetooth: hci_qca: Disable IBS state machine and flush Tx buffer
>
> Changes in v11:
> * added correct signatures for the patch.
>
> Changes in v10:
> * Decreased wait time for power pulse to 100 ms instead of 1second.
> * enabling the flow control back when baudarte change request fails.
> * updated review comments.
>
> Changes in v9:
> * Reverted the 100us delay and used msecs to jiffies inline call.
> * Disabling the flow control and enabling it back while setting the firmware.
> * Added spinlock while clearing the IBS state machine.
>
> Changes in v8:
> * dropped inject the command complete event.
> * added one second time for the power pules instead of the indefinite time.
>
> Changes in v7:
> * dropped frame reassmebly error patch.
> * dropped baudrate change wait time patch.
> * increased a wait to 5 ms for power pulses.
>
> Changes in v6:
> * added serdev_device_write_flush in qca_send_power_pulse().
> * added new patch to update the baudrate change wait time.
>
> Changes in V5:
> * added serdev_device_write_flush before sending the power off pulse
> during shutdown.
>
> Changes in v4:
> * used serdev_device_write_buf() instead of serdev_device_write().
> * added new patch to stop logging of 0xfc00 timeout on console.
>
> Changes in v3:
> * moved IBS & qca_flush to different patch
> * updated comments in code fo Deassert RTS patch
> Balakrishna Godavarthi (3):
> Bluetooth: hci_qca: use wait_until_sent() for power pulses
> Bluetooth: hci_qca: Deassert RTS while baudrate change command
> Bluetooth: hci_qca: Disable IBS state machine and flush Tx buffer
>
> drivers/bluetooth/hci_qca.c | 82 ++++++++++++++++++++-----------------
> 1 file changed, 44 insertions(+), 38 deletions(-)

all 3 patches have been applied to bluetooth-next tree.

Regards

Marcel