public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: gubbaven@codeaurora.org
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: 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,
	bgodavar@codeaurora.org, rjliao@codeaurora.org,
	hbandi@codeaurora.org, abhishekpandit@chromium.org
Subject: Re: [PATCH v2] Bluetooth: btqca: Add support to read FW build version for WCN3991 BTSoC
Date: Tue, 24 Nov 2020 22:26:58 +0530	[thread overview]
Message-ID: <2366096dae31651769bfe1f7f3796a16@codeaurora.org> (raw)
In-Reply-To: <20201118145725.GI8532@builder.lan>

Hi Bjorn,
On 2020-11-18 20:27, Bjorn Andersson wrote:
> On Wed 18 Nov 06:52 CST 2020, Venkata Lakshmi Narayana Gubba wrote:
> 
>> Add support to read FW build version for WCN3991 BTSoC
> 
> Your commit message doesn't describe why you need/want this? Is it
> somehow required for BT to come up or is it simply 57 lines of code to
> print a line of build info in the kernel log?
> 
> 
> 
> Note that most people reading the kernel log won't care about what
> firmware version their BT chip is running, so if it's only for your own
> debugging purpose I would prefer if you make this available in sysfs or
> debugfs.
> 
> Regards,
> Bjorn
> 
[Venkata] :
Yes, this code is to print build info in kernel log for debugging 
purpose.
I will add this in debugfs and will post the updated patch.
>> 
>> Signed-off-by: Venkata Lakshmi Narayana Gubba 
>> <gubbaven@codeaurora.org>
>> ---
>>  drivers/bluetooth/btqca.c | 57 
>> +++++++++++++++++++++++++++++++++++++++++++++++
>>  drivers/bluetooth/btqca.h |  3 +++
>>  2 files changed, 60 insertions(+)
>> 
>> diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c
>> index ce9dcff..dfd7ff7 100644
>> --- a/drivers/bluetooth/btqca.c
>> +++ b/drivers/bluetooth/btqca.c
>> @@ -101,6 +101,56 @@ int qca_read_soc_version(struct hci_dev *hdev, 
>> u32 *soc_version,
>>  }
>>  EXPORT_SYMBOL_GPL(qca_read_soc_version);
>> 
>> +static int qca_read_fw_build_info(struct hci_dev *hdev)
>> +{
>> +	struct sk_buff *skb;
>> +	struct edl_event_hdr *edl;
>> +	char cmd;
>> +	int err = 0;
>> +	char build_label[QCA_FW_BUILD_VER_LEN];
>> +	int build_lbl_len;
>> +
>> +	bt_dev_dbg(hdev, "QCA read fw build info");
>> +
>> +	cmd = EDL_GET_BUILD_INFO_CMD;
>> +	skb = __hci_cmd_sync_ev(hdev, EDL_PATCH_CMD_OPCODE, 
>> EDL_PATCH_CMD_LEN,
>> +				&cmd, HCI_EV_VENDOR, HCI_INIT_TIMEOUT);
>> +	if (IS_ERR(skb)) {
>> +		err = PTR_ERR(skb);
>> +		bt_dev_err(hdev, "Reading QCA fw build info failed (%d)",
>> +			   err);
>> +		return err;
>> +	}
>> +
>> +	edl = (struct edl_event_hdr *)(skb->data);
>> +	if (!edl) {
>> +		bt_dev_err(hdev, "QCA read fw build info with no header");
>> +		err = -EILSEQ;
>> +		goto out;
>> +	}
>> +
>> +	if (edl->cresp != EDL_CMD_REQ_RES_EVT ||
>> +	    edl->rtype != EDL_GET_BUILD_INFO_CMD) {
>> +		bt_dev_err(hdev, "QCA Wrong packet received %d %d", edl->cresp,
>> +			   edl->rtype);
>> +		err = -EIO;
>> +		goto out;
>> +	}
>> +
>> +	build_lbl_len = edl->data[0];
>> +	memcpy(build_label, &edl->data[1], build_lbl_len);
>> +	*(build_label + build_lbl_len) = '\0';
>> +
>> +	bt_dev_info(hdev, "BT SoC FW Build info: %s", build_label);
>> +
>> +out:
>> +	kfree_skb(skb);
>> +	if (err)
>> +		bt_dev_err(hdev, "QCA read fw build info failed (%d)", err);
>> +
>> +	return err;
>> +}
>> +
>>  static int qca_send_reset(struct hci_dev *hdev)
>>  {
>>  	struct sk_buff *skb;
>> @@ -520,6 +570,13 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t 
>> baudrate,
>>  		return err;
>>  	}
>> 
>> +	if (soc_type == QCA_WCN3991) {
>> +		/* get fw build info */
>> +		err = qca_read_fw_build_info(hdev);
>> +		if (err < 0)
>> +			return err;
>> +	}
>> +
>>  	bt_dev_info(hdev, "QCA setup on UART is completed");
>> 
>>  	return 0;
>> diff --git a/drivers/bluetooth/btqca.h b/drivers/bluetooth/btqca.h
>> index d81b74c..375c7fc 100644
>> --- a/drivers/bluetooth/btqca.h
>> +++ b/drivers/bluetooth/btqca.h
>> @@ -11,6 +11,7 @@
>>  #define EDL_PATCH_CMD_LEN		(1)
>>  #define EDL_PATCH_VER_REQ_CMD		(0x19)
>>  #define EDL_PATCH_TLV_REQ_CMD		(0x1E)
>> +#define EDL_GET_BUILD_INFO_CMD		(0x20)
>>  #define EDL_NVM_ACCESS_SET_REQ_CMD	(0x01)
>>  #define MAX_SIZE_PER_TLV_SEGMENT	(243)
>>  #define QCA_PRE_SHUTDOWN_CMD		(0xFC08)
>> @@ -34,6 +35,8 @@
>>  #define QCA_HCI_CC_OPCODE		0xFC00
>>  #define QCA_HCI_CC_SUCCESS		0x00
>> 
>> +#define QCA_FW_BUILD_VER_LEN		255
>> +
>>  enum qca_baudrate {
>>  	QCA_BAUDRATE_115200 	= 0,
>>  	QCA_BAUDRATE_57600,
>> --
>> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a 
>> member
>> of Code Aurora Forum, hosted by The Linux Foundation
>> 
Regards,
Lakshmi Narayana.

  reply	other threads:[~2020-11-24 16:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-18 12:52 [PATCH v2] Bluetooth: btqca: Add support to read FW build version for WCN3991 BTSoC Venkata Lakshmi Narayana Gubba
2020-11-18 14:57 ` Bjorn Andersson
2020-11-24 16:56   ` gubbaven [this message]
2020-11-21  1:32 ` [v2] " bluez.test.bot
2020-11-23 11:32 ` [PATCH v2] " Marcel Holtmann

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=2366096dae31651769bfe1f7f3796a16@codeaurora.org \
    --to=gubbaven@codeaurora.org \
    --cc=abhishekpandit@chromium.org \
    --cc=bgodavar@codeaurora.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=hbandi@codeaurora.org \
    --cc=hemantg@codeaurora.org \
    --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 \
    --cc=rjliao@codeaurora.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox