mbox series

[0/4] Add support for QCA9379 hw1.0 SDIO WiFi/BT

Message ID 20240805040131.450412-1-felix@kaechele.ca
Headers show
Series Add support for QCA9379 hw1.0 SDIO WiFi/BT | expand

Message

Felix Kaechele Aug. 5, 2024, 4:01 a.m. UTC
Add support for Qualcomm QCA9379-3 SDIO based adapters.

The Bluetooth part is straightforward. It simply adds a DT compatible
string to the existing driver.

The WiFi part is a followup to the RFC I sent back in February [0], that
didn't receive any comments.

Since then I aligned the patch closer to what the driver does for the
QCA6174 rather than the QCA9377, as the latter hasn't been touched in a
while.
With that the driver no longer throws errors for non-existent calibration
data.

The roaming and group re-keying issues still persist, but may not be
specific to this chipset, as this (or a similar issue) is apparently seen
on other chipsets as well [1].
The user impact of this issue is an intermittent loss of connectivity
while the adapter re-associates. Other than that the connection is
stable.

I have tested this patch on a Lenovo ThinkSmart View (CD-18781Y) that
comes with a LITEON WCBN3510A module. The firmware and boardfile used for
testing was pulled from the original Android image. A file at
/modem/verinfo/ver_info.txt on the Android image identifies the WiFi
part as "WLAN.NPL.1.6-00163-QCANPLSWPZ-1" and the Bluetooth part as
"BTFM.NPL.1.0.4-00002-QCABTFMSWPZ-1".

No firmware files are currently available from public repositories, but
they should available from the vendor website [2] for customers that have
the according access.

I can submit the boardfile to the ath10k list once this patch is
accepted. The one that is included with the Android system image has a
sha256sum of 65767cca6a1ff88a9899235acdeeed1e9447a2f16f41d38052202835d5bda7d4.

If someone from Qualcomm could add both the WiFi and BT firmwares to the
linux-firmware repositories that would be much appreciated.
I'm happy to test any firmware before submission, if desired.

Thanks,
Felix

[0]: https://lore.kernel.org/ath10k/20240229032700.414415-1-felix@kaechele.ca/T/
[1]: https://lore.kernel.org/ath10k/c407064a-1c2f-46ec-ac57-32bf9cf6f5c6@gmail.com/T/
[2]: https://www.qualcomm.com/products/technology/wi-fi/qca9379#Software

Felix Kaechele (4):
  mmc: sdio: add Qualcomm QCA9379-3 SDIO id
  wifi: ath10k: add support for QCA9379 hw1.0 SDIO
  dt-bindings: net: bluetooth: qualcomm: add QCA9379 compatible
  Bluetooth: hci_qca: add compatible for QCA9379

 .../net/bluetooth/qualcomm-bluetooth.yaml     |  2 +
 drivers/bluetooth/hci_qca.c                   |  1 +
 drivers/net/wireless/ath/ath10k/core.c        | 37 +++++++++++++++++++
 drivers/net/wireless/ath/ath10k/hw.h          | 10 +++++
 drivers/net/wireless/ath/ath10k/pci.c         |  2 +
 drivers/net/wireless/ath/ath10k/sdio.c        |  5 ++-
 drivers/net/wireless/ath/ath10k/targaddrs.h   |  3 ++
 include/linux/mmc/sdio_ids.h                  |  1 +
 8 files changed, 60 insertions(+), 1 deletion(-)


base-commit: aefacd7c75edfaf6690819c1990b851f4c7b50cf

Comments

Felix Kaechele Aug. 13, 2024, 10:11 p.m. UTC | #1
Thanks for taking a look, Krzysztof.

In this case I think it would be easiest to just use the existing 
qca9377 fallback and drop his part of the patchset.

As for the supplies: For the particular module I am working with the 
supplies are mostly shared with the WiFi side. So it "just works" 
without taking care of supplies on the BT side.

But I agree it would be more correct to add and handle these as well. 
The documentation I have access to through the FCC filing of this module 
is not really conclusive of how to correctly name them in this context.
I would rather avoid submitting a patch with incorrect supply names.

Thanks again,
Felix

On 2024-08-05 01:31, Krzysztof Kozlowski wrote:
> On 05/08/2024 06:01, Felix Kaechele wrote:
>> Document that the QCA9379, as a member of the QCA6174 family, is
>> supported by the existing driver.
>>
>> Signed-off-by: Felix Kaechele <felix@kaechele.ca>
>> ---
>>   .../devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml   | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> index 68c5ed111417..f968b0d236e0 100644
>> --- a/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> +++ b/Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml
>> @@ -19,6 +19,7 @@ properties:
>>         - qcom,qca2066-bt
>>         - qcom,qca6174-bt
>>         - qcom,qca9377-bt
>> +      - qcom,qca9379-bt
> 
> Then use fallback of 9377 or any other device. I still wonder why you do
> not require any supplies.
> 
> Best regards,
> Krzysztof
> 
>
Krzysztof Kozlowski Aug. 14, 2024, 6:14 a.m. UTC | #2
On 14/08/2024 00:11, Felix Kaechele wrote:
> Thanks for taking a look, Krzysztof.
> 
> In this case I think it would be easiest to just use the existing 
> qca9377 fallback and drop his part of the patchset.

You need then other patchset documenting new compatible with fallback.
Compatibles are always specific.

https://elixir.bootlin.com/linux/v6.10-rc1/source/Documentation/devicetree/bindings/writing-bindings.rst

> 
> As for the supplies: For the particular module I am working with the 
> supplies are mostly shared with the WiFi side. So it "just works" 
> without taking care of supplies on the BT side.

You still should describe the hardware.

> 
> But I agree it would be more correct to add and handle these as well. 
> The documentation I have access to through the FCC filing of this module 
> is not really conclusive of how to correctly name them in this context.
> I would rather avoid submitting a patch with incorrect supply names.

OK



Best regards,
Krzysztof