From: Johan Hovold <johan@kernel.org>
To: Balakrishna Godavarthi <bgodavar@codeaurora.org>
Cc: Johan Hovold <johan@kernel.org>,
marcel@holtmann.org, johan.hedberg@gmail.com, mka@chromium.org,
linux-kernel@vger.kernel.org, linux-bluetooth@vger.kernel.org,
hemantg@codeaurora.org, linux-arm-msm@vger.kernel.org,
Johan Hovold <jhovold@gmail.com>
Subject: Re: [PATCH v3 1/4] Bluetooth: hci_qca: use wait_until_sent() for power pulses
Date: Wed, 12 Dec 2018 17:42:51 +0100 [thread overview]
Message-ID: <20181212164251.GI3500@localhost> (raw)
In-Reply-To: <c9bcbaed89a18499fe42463b20367499@codeaurora.org>
On Thu, Dec 06, 2018 at 04:10:07PM +0530, Balakrishna Godavarthi wrote:
> Hi Johan,
>
> On 2018-12-05 11:55, Johan Hovold wrote:
> > On Fri, Nov 30, 2018 at 08:32:44PM +0530, Balakrishna Godavarthi wrote:
> >> + ret = serdev_device_write(hu->serdev, &cmd, sizeof(cmd), 0);
> >
> > You're still using 0 as a timeout here which is broken, as I already
> > told you.
>
> [Bala]: got the change now will update to timeout to non zero value.
>
> > From 4.21 this will result in an indefinite timeout, but currently
> > implies not to wait for a full write buffer to drain at all.
> >
> > As I also mentioned, you need to to make sure to call
> > serdev_device_write_wakeup() in the write_wakup() path if you are going
> > to use serdev_device_write() at all.
>
> [Bala]: this where i am confused.
> calling serdev_device_write is calling an wakeup internally.
> below is the flow
>
> ttyport_write_buf:
> * calling serdev_device_write() will call write_buf() in
> this call we are enabling bit "TTY_DO_WRITE_WAKEUP" and calling write()
> i.e. uart_write() where we call in start_tx. this will
> go to the vendor specific write where in isr we call uart_write_wakeup()
>
> https://elixir.bootlin.com/linux/latest/source/drivers/tty/serial/qcom_geni_serial.c#L756
>
>
> uart_write_wakeup()->ttyport_write_wakeup()->serdev_controller_write_wakeup()->hci_uart_write_wakeup()->hci_uart_tx_wakeup()
>
> the above is flow when serdev_device_write() is called, it is
> indirectly calling serdev_write_wakeup().
No, serdev_device_write_wakeup() is currently not called in this path,
which means you cannot use serdev_device_write().
> Why actual we need to call an serdev_write_wakeup() is this
> wakeup related to the UART port or for the BT chip.
serdev_device_write_wakeup() is where a writer blocked on a full write
buffer in serdev_device_write() is woken up.
Johan
next prev parent reply other threads:[~2018-12-12 16:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-30 15:02 [PATCH v3 0/4] Bug fixes for Qualcomm BT chip wcn3990 Balakrishna Godavarthi
2018-11-30 15:02 ` [PATCH v3 1/4] Bluetooth: hci_qca: use wait_until_sent() for power pulses Balakrishna Godavarthi
2018-12-05 6:25 ` Johan Hovold
2018-12-05 6:25 ` Johan Hovold
2018-12-06 10:40 ` Balakrishna Godavarthi
2018-12-11 15:42 ` Balakrishna Godavarthi
2018-12-12 16:42 ` Johan Hovold [this message]
2018-12-14 12:32 ` Balakrishna Godavarthi
2018-12-14 13:16 ` Johan Hovold
2018-12-14 13:41 ` Balakrishna Godavarthi
2018-11-30 15:02 ` [PATCH v3 2/4] Bluetooth: hci_qca: Deassert RTS while baudrate change command Balakrishna Godavarthi
2018-11-30 15:02 ` [PATCH v3 3/4] Bluetooth: hci_qca: Fix frame reassembly errors for wcn3990 Balakrishna Godavarthi
2018-11-30 15:02 ` [PATCH v3 4/4] Bluetooth: hci_qca: Disable IBS state machine and flush Tx buffer Balakrishna Godavarthi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181212164251.GI3500@localhost \
--to=johan@kernel.org \
--cc=bgodavar@codeaurora.org \
--cc=hemantg@codeaurora.org \
--cc=jhovold@gmail.com \
--cc=johan.hedberg@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=mka@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.