[PATCH] ath11k: debugfs: fix to work with multiple PCI devices
Kalle Valo
kvalo at kernel.org
Thu Jan 12 01:09:21 PST 2023
Robert Marko <robert.marko at sartura.hr> writes:
> On Tue, Dec 20, 2022 at 1:16 PM Kalle Valo <kvalo at kernel.org> wrote:
>>
>> From: Kalle Valo <quic_kvalo at quicinc.com>
>>
>> ath11k fails to load if there are multiple ath11k PCI devices with same name:
>>
>> ath11k_pci 0000:01:00.0: Hardware name qcn9074 hw1.0
>> debugfs: Directory 'ath11k' with parent '/' already present!
>> ath11k_pci 0000:01:00.0: failed to create ath11k debugfs
>> ath11k_pci 0000:01:00.0: failed to create soc core: -17
>> ath11k_pci 0000:01:00.0: failed to init core: -17
>> ath11k_pci: probe of 0000:01:00.0 failed with error -17
>>
>> Fix this by creating a directory for each ath11k device using schema
>> <bus>-<devname>, for example "pci-0000:06:00.0". This directory created under
>> the top-level ath11k directory, for example /sys/kernel/debug/ath11k.
>>
>> The reference to the toplevel ath11k directory is not stored anymore within ath11k, instead
>> it's retrieved using debugfs_lookup(). If the directory does not exist it will
>> be created. After the last directory from the ath11k directory is removed, for
>> example when doing rmmod ath11k, the empty ath11k directory is left in place,
>> it's a minor cosmetic issue anyway.
>>
>> Here's an example hierarchy with one WCN6855:
>>
>> ath11k
>> `-- pci-0000:06:00.0
>> |-- mac0
>> | |-- dfs_block_radar_events
>> | |-- dfs_simulate_radar
>> | |-- ext_rx_stats
>> | |-- ext_tx_stats
>> | |-- fw_dbglog_config
>> | |-- fw_stats
>> | | |-- beacon_stats
>> | | |-- pdev_stats
>> | | `-- vdev_stats
>> | |-- htt_stats
>> | |-- htt_stats_reset
>> | |-- htt_stats_type
>> | `-- pktlog_filter
>> |-- simulate_fw_crash
>> `-- soc_dp_stats
>>
>> I didn't have a test setup where I could connect multiple ath11k devices to the
>> same the host, so I have only tested this with one device.
>>
>> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.9
>
>
> I can confirm that this works on a combination of IPQ8074 with an
> external QCN9074 radio which would previously clash and error out, so:
>
> Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
> Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1
> Tested-by: Robert Marko <robert.marko at sartura.hr>
Great, thank you for testing this. Very much appreciated. I added the
tags tags to the commit.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
More information about the ath11k
mailing list