Re: [PATCH v8 1/3] Bluetooth: hci_qca: use wait_until_sent() for power pulses

From: Johan Hovold
Date: Thu Jan 17 2019 - 11:13:34 EST


On Thu, Jan 17, 2019 at 03:55:17PM +0530, Balakrishna Godavarthi wrote:
> Hi Matthias,
>
> On 2019-01-17 01:52, Matthias Kaehlcke wrote:

> >> - /* Wait for 100 uS for SoC to settle down */
> >> - usleep_range(100, 200);
> >> + serdev_device_wait_until_sent(hu->serdev, timeout);
> >> + /* Wait of 5ms is required for assuring to send the byte on the Tx
> >> + * line and also for the controller to settle down for the received
> >> + * byte.
> >> + */
> >> + usleep_range(5000, 6000);
> >
> > I incorrectly claimed that there might be still bytes sitting in the
> > UART FIFO when serdev_device_wait_until_sent() returns, Johan
> > corrected me on that (thanks!). So if it takes the SoC 100us to settle
> > down we should be good with the original code.
>
> [Bala]: sure will revert, i think he commented that wait_until_sent()
> will only guarantee circular buffer is empty. if wait_until_sent()
> guarantee us that the data was transmitted from the FIFO, then 100us
> will work.

No, Matthias is correct; I claimed that the UART FIFO will be empty (at
least as long as flow control is disabled, otherwise it may never empty
and we therefore also have a time out).

Johan