LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>,
	linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org,
	Balakrishna Godavarthi <bgodavar@codeaurora.org>,
	Harish Bandi <c-hbandi@codeaurora.org>,
	Rocky Liao <rjliao@codeaurora.org>
Subject: Re: [PATCH v4] Bluetooth: hci_qca: wcn3990: Drop baudrate change vendor event
Date: Sat, 6 Jul 2019 12:51:13 +0200	[thread overview]
Message-ID: <9052566C-2880-4771-AAA5-DCF0E23C9C0D@holtmann.org> (raw)
In-Reply-To: <20190521195307.23874-1-mka@chromium.org>

Hi Matthias,

> Firmware download to the WCN3990 often fails with a 'TLV response size
> mismatch' error:
> 
> [  133.064659] Bluetooth: hci0: setting up wcn3990
> [  133.489150] Bluetooth: hci0: QCA controller version 0x02140201
> [  133.495245] Bluetooth: hci0: QCA Downloading qca/crbtfw21.tlv
> [  133.507214] Bluetooth: hci0: QCA TLV response size mismatch
> [  133.513265] Bluetooth: hci0: QCA Failed to download patch (-84)
> 
> This is caused by a vendor event that corresponds to an earlier command
> to change the baudrate. The event is not processed in the context of the
> baudrate change and is later interpreted as response to the firmware
> download command (which is also a vendor command), but the driver detects
> that the event doesn't have the expected amount of associated data.
> 
> More details:
> 
> For the WCN3990 the vendor command for a baudrate change isn't sent as
> synchronous HCI command, because the controller sends the corresponding
> vendor event with the new baudrate. The event is received and decoded
> after the baudrate change of the host port.
> 
> Identify the 'unused' event when it is received and don't add it to
> the queue of RX frames.
> 
> Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
> ---
> Changes in v4:
> - limit the fix to WCN3990 instead of applying it to all WCN399x.
>  Harish Bandi <c-hbandi@codeaurora.org> reported frame reassembly
>  errors with WCN3998 and v3. At this point it is unknown in how far
>  WCN3998 behaves different from WCN3990, we can revisit
>  it later if it turns that it has the same problem.
> 
> Changes in v3:
> - rebased on latest bluetooth-next/master
> - removed barrier calls again, bit routines include barriers
> 
> Changes in v2:
> - make QCA_DROP_VENDOR_EVENT an enum value and don't use BIT()
> - free skb in qca_recv_event()
> - add barriers to ensure qca_recv_event() sees updated flags
> - return -ETIMEDOUT instead of -EPROTO if the vendor event isn't
>  received in time
> ---
> drivers/bluetooth/hci_qca.c | 55 ++++++++++++++++++++++++++++++++++++-
> 1 file changed, 54 insertions(+), 1 deletion(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel


      parent reply	other threads:[~2019-07-06 10:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-21 19:53 Matthias Kaehlcke
2019-06-20 23:48 ` Matthias Kaehlcke
2019-07-06 10:51 ` Marcel Holtmann [this message]

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=9052566C-2880-4771-AAA5-DCF0E23C9C0D@holtmann.org \
    --to=marcel@holtmann.org \
    --cc=bgodavar@codeaurora.org \
    --cc=c-hbandi@codeaurora.org \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mka@chromium.org \
    --cc=rjliao@codeaurora.org \
    --subject='Re: [PATCH v4] Bluetooth: hci_qca: wcn3990: Drop baudrate change vendor event' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).