RE: [PATCH v3] Bluetooth: hci_qca: Add support for Qualcomm Bluetooth SoC QCA2066

From: Tim Jiang (QUIC)
Date: Wed May 17 2023 - 23:27:36 EST


Paul:
Inline comments.
Regards.
Tim


-----Original Message-----
From: Paul Menzel <pmenzel@xxxxxxxxxxxxx>
Sent: Wednesday, May 17, 2023 8:28 PM
To: Tim Jiang (QUIC) <quic_tjiang@xxxxxxxxxxx>
Cc: marcel@xxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-bluetooth@xxxxxxxxxxxxxxx; linux-arm-msm@xxxxxxxxxxxxxxx; Balakrishna Godavarthi (QUIC) <quic_bgodavar@xxxxxxxxxxx>; Hemant Gupta (QUIC) <quic_hemantg@xxxxxxxxxxx>; mka@xxxxxxxxxxxx
Subject: Re: [PATCH v3] Bluetooth: hci_qca: Add support for Qualcomm Bluetooth SoC QCA2066

Dear Tim,


Am 17.05.23 um 04:46 schrieb Tim Jiang (QUIC):
> Paul :
> Thanks for comments, please see inline comments.

Thank you for your reply. (It’d be great, if you used an email client, that can properly quote/cite like Mozilla Thunderbird.)

> -----Original Message-----
> From: Paul Menzel <pmenzel@xxxxxxxxxxxxx>
> Sent: Tuesday, May 16, 2023 7:00 PM

> Am 16.05.23 um 12:41 schrieb Tim Jiang:
>> This patch adds support for QCA2066 firmware patch and nvm downloading.
>
> Could you please elaborate, what new features are needed for this as you add common functions?
>
> Please document the datasheet.
> [Tim] no new feature, only support new chip qca2066 btfw downloading

As I wrote, you add common functions like `qca_read_fw_board_id()`, which were not required before. So please elaborate in the commit message.
[Tim] got it , will address it in v5 version

>> Signed-off-by: Tim Jiang <quic_tjiang@xxxxxxxxxxx>
>> ---
>> drivers/bluetooth/btqca.c | 77 ++++++++++++++++++++++++++++++++++++-
>> drivers/bluetooth/btqca.h | 4 ++
>> drivers/bluetooth/hci_qca.c | 8 +++-
>> 3 files changed, 87 insertions(+), 2 deletions(-)

[…]

>> @@ -574,6 +616,30 @@ int qca_set_bdaddr_rome(struct hci_dev *hdev, const bdaddr_t *bdaddr)
>> }
>> EXPORT_SYMBOL_GPL(qca_set_bdaddr_rome);
>>
>> +static void qca_generate_nvm_name(struct hci_dev *hdev, char *fwname,
>> + size_t max_size, struct qca_btsoc_version ver, u16 bid) {
>> + u8 rom_ver = 0;
>> + u32 soc_ver;
>
> Any reason to fix the size of the variables?
> [Tim] sorry , I does not got your point

Why can’t you simply use `unsigned int` [1]?
[Tim] you can refer to function qca_uart_setup , which also use u32

[…]

>> diff --git a/drivers/bluetooth/hci_qca.c
>> b/drivers/bluetooth/hci_qca.c index 1b064504b388..ec24ce451568 100644
>> --- a/drivers/bluetooth/hci_qca.c
>> +++ b/drivers/bluetooth/hci_qca.c
>> @@ -1729,7 +1729,7 @@ static int qca_setup(struct hci_uart *hu)
>> bt_dev_info(hdev, "setting up %s",
>> qca_is_wcn399x(soc_type) ? "wcn399x" :
>> (soc_type == QCA_WCN6750) ? "wcn6750" :
>> - (soc_type == QCA_WCN6855) ? "wcn6855" : "ROME/QCA6390");
>> + (soc_type == QCA_WCN6855) ? "wcn6855" : "ROME/QCA6390/QCA2066");
>>
>> qca->memdump_state = QCA_MEMDUMP_IDLE;
>>
>> @@ -1874,6 +1874,11 @@ static const struct qca_device_data qca_soc_data_qca6390 __maybe_unused = {
>> .num_vregs = 0,
>> };
>>
>> +static const struct qca_device_data qca_soc_data_qca2066 = {
>> + .soc_type = QCA_QCA2066,
>> + .num_vregs = 0,
>> +};
>> +
>> static const struct qca_device_data qca_soc_data_wcn6750 __maybe_unused = {
>> .soc_type = QCA_WCN6750,
>> .vregs = (struct qca_vreg []) {
>> @@ -2364,6 +2369,7 @@ static const struct of_device_id qca_bluetooth_of_match[] = {
>> { .compatible = "qcom,wcn3998-bt", .data = &qca_soc_data_wcn3998},
>> { .compatible = "qcom,wcn6750-bt", .data = &qca_soc_data_wcn6750},
>> { .compatible = "qcom,wcn6855-bt", .data =
>> &qca_soc_data_wcn6855},
>> + { .compatible = "qcom,qca2066-bt", .data = &qca_soc_data_qca2066},
>
> Sort it?
> [Tim] it have been sorted or please guide me how to sort it ?

Sort it lexicographically, that means, q goes before w.
[Tim] will address in v5 version.


>> { /* sentinel */ }
>> };
>> MODULE_DEVICE_TABLE(of, qca_bluetooth_of_match);


Kind regards,

Paul