LKML Archive on
help / color / mirror / Atom feed
From: Marcel Holtmann <>
To: Matthias Kaehlcke <>
Cc: Johan Hedberg <>,,,
	Balakrishna Godavarthi <>,
	Harish Bandi <>,
	Rocky Liao <>
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: <> (raw)
In-Reply-To: <>

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 <>
> ---
> Changes in v4:
> - limit the fix to WCN3990 instead of applying it to all WCN399x.
>  Harish Bandi <> 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.



      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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \
    --subject='Re: [PATCH v4] Bluetooth: hci_qca: wcn3990: Drop baudrate change vendor event' \

* 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).