From: Balakrishna Godavarthi <bgodavar@codeaurora.org>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: marcel@holtmann.org, johan.hedberg@gmail.com,
linux-kernel@vger.kernel.org, linux-bluetooth@vger.kernel.org,
hemantg@codeaurora.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v1] Bluetooth: hci_qca: Add helper to set device address.
Date: Wed, 31 Oct 2018 19:06:49 +0530 [thread overview]
Message-ID: <e2785ffd2c5c614ba92d170afef3ea3b@codeaurora.org> (raw)
In-Reply-To: <20181026185314.GD22824@google.com>
Hi Matthias,
On 2018-10-27 00:23, Matthias Kaehlcke wrote:
> On Fri, Oct 26, 2018 at 07:34:50PM +0530, Balakrishna Godavarthi wrote:
>> This patch add qca_set_device_bdaddr() to set the device
>> address for latest Qualcomm Bluetooth chipset wcn3990 and above.
>>
>> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>> ---
>> drivers/bluetooth/btqca.c | 21 +++++++++++++++++++++
>> drivers/bluetooth/btqca.h | 9 ++++++++-
>> drivers/bluetooth/hci_qca.c | 5 ++++-
>> 3 files changed, 33 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c
>> index ec9e03a6b778..132dc6ceb174 100644
>> --- a/drivers/bluetooth/btqca.c
>> +++ b/drivers/bluetooth/btqca.c
>> @@ -391,6 +391,27 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t
>> baudrate,
>> }
>> EXPORT_SYMBOL_GPL(qca_uart_setup);
>>
>> +int qca_set_device_bdaddr(struct hci_dev *hdev, const bdaddr_t
>> *bdaddr)
>
> nit: just qca_set_bdaddr() ? That would be consistent with
> qca_set_bdaddr_rome() and ->set_bdaddr().
>
[Bala]: will update.
>> +{
>> + struct sk_buff *skb;
>> + u8 cmd[6];
>
> nit: this doesn't really contain the command (which is
> EDL_WRITE_BD_ADDR_OPCODE). Name it 'buf', 'ba' or similar?
>
[Bala]: will update with ba.
> re-nit: in the memcpy below 'sizeof(bdaddr_t)' is used, do the same in
> the declaration?
>
>> + int err;
>> +
>> + memcpy(cmd, bdaddr, sizeof(bdaddr_t));
>> + skb = __hci_cmd_sync_ev(hdev, EDL_WRITE_BD_ADDR_OPCODE, sizeof(cmd),
>> + cmd, HCI_EV_VENDOR, HCI_INIT_TIMEOUT);
>> + if (IS_ERR(skb)) {
>> + err = PTR_ERR(skb);
>> + bt_dev_err(hdev, "QCA Change address cmd failed (%d)", err);
>> + return err;
>> + }
>> +
>> + kfree_skb(skb);
>> +
>> + return 0;
>> +}
>> +EXPORT_SYMBOL_GPL(qca_set_device_bdaddr);
>> +
>> MODULE_AUTHOR("Ben Young Tae Kim <ytkim@qca.qualcomm.com>");
>> MODULE_DESCRIPTION("Bluetooth support for Qualcomm Atheros family ver
>> " VERSION);
>> MODULE_VERSION(VERSION);
>> diff --git a/drivers/bluetooth/btqca.h b/drivers/bluetooth/btqca.h
>> index 0c01f375fe83..8771fc2b193d 100644
>> --- a/drivers/bluetooth/btqca.h
>> +++ b/drivers/bluetooth/btqca.h
>> @@ -20,6 +20,7 @@
>>
>> #define EDL_PATCH_CMD_OPCODE (0xFC00)
>> #define EDL_NVM_ACCESS_OPCODE (0xFC0B)
>> +#define EDL_WRITE_BD_ADDR_OPCODE (0xFC14)
>> #define EDL_PATCH_CMD_LEN (1)
>> #define EDL_PATCH_VER_REQ_CMD (0x19)
>> #define EDL_PATCH_TLV_REQ_CMD (0x1E)
>> @@ -140,7 +141,7 @@ int qca_set_bdaddr_rome(struct hci_dev *hdev,
>> const bdaddr_t *bdaddr);
>> int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,
>> enum qca_btsoc_type soc_type, u32 soc_ver);
>> int qca_read_soc_version(struct hci_dev *hdev, u32 *soc_version);
>> -
>> +int qca_set_device_bdaddr(struct hci_dev *hdev, const bdaddr_t
>> *bdaddr);
>> #else
>>
>> static inline int qca_set_bdaddr_rome(struct hci_dev *hdev, const
>> bdaddr_t *bdaddr)
>> @@ -159,4 +160,10 @@ static inline int qca_read_soc_version(struct
>> hci_dev *hdev, u32 *soc_version)
>> return -EOPNOTSUPP;
>> }
>>
>> +static inline int qca_set_device_bdaddr(struct hci_dev *hdev,
>> + const bdaddr_t *bdaddr)
>> +{
>> + return -EOPNOTSUPP;
>> +}
>> +
>> #endif
>> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> index f036c8f98ea3..f18d9f5a7782 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -1241,7 +1241,10 @@ static int qca_setup(struct hci_uart *hu)
>> }
>>
>> /* Setup bdaddr */
>> - hu->hdev->set_bdaddr = qca_set_bdaddr_rome;
>> + if (qcadev->btsoc_type == QCA_WCN3990)
>> + hu->hdev->set_bdaddr = qca_set_device_bdaddr;
>> + else
>> + hu->hdev->set_bdaddr = qca_set_bdaddr_rome;
>>
>> return ret;
>> }
>
> Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
> Tested-by: Matthias Kaehlcke <mka@chromium.org>
--
Regards
Balakrishna.
prev parent reply other threads:[~2018-10-31 13:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-26 14:04 [PATCH v1] Bluetooth: hci_qca: Add helper to set device address Balakrishna Godavarthi
2018-10-26 18:53 ` Matthias Kaehlcke
2018-10-31 13:36 ` Balakrishna Godavarthi [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=e2785ffd2c5c614ba92d170afef3ea3b@codeaurora.org \
--to=bgodavar@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 \
/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.