]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: ath12k: add hw_link_id in ath12k_pdev
authorKarthikeyan Periyasamy <quic_periyasa@quicinc.com>
Thu, 30 May 2024 15:56:52 +0000 (18:56 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Mon, 3 Jun 2024 13:15:50 +0000 (16:15 +0300)
Currently, hw_link_id is sent in WMI service ready event but it
is not parsed anywhere.

But, in future, for multi-link operation, this parameter would be
needed by many WMI commands such as WMI beacon template
(WMI_BCN_TMPL_CMDID), WMI vdev start for Multi-link virtual AP
interfaces (WMI_VDEV_START_REQUEST_CMDID), WMI peer assoc command
(WMI_PEER_ASSOC_CMDID) for Multi-link peer and so on.

Hence, add changes to parse and store the hw_link_id received in
WMI service ready event in ath12k_pdev structure.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Signed-off-by: Harshitha Prem <quic_hprem@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240529054955.4105240-1-quic_hprem@quicinc.com
drivers/net/wireless/ath/ath12k/core.h
drivers/net/wireless/ath/ath12k/mac.c
drivers/net/wireless/ath/ath12k/wmi.c

index 44ca30b67fa2e506ab9e757a2f5b42cbfdaa25b7..d03326a68a9f53e391b2f459d097bfa1598426cc 100644 (file)
@@ -690,6 +690,7 @@ struct mlo_timestamp {
 struct ath12k_pdev {
        struct ath12k *ar;
        u32 pdev_id;
+       u32 hw_link_id;
        struct ath12k_pdev_cap cap;
        u8 mac_addr[ETH_ALEN];
        struct mlo_timestamp timestamp;
index 784964ae03ec59da7969218fc7d2fc0d848915ec..509c02bffdae87dc413d7069f4677e533e088fd9 100644 (file)
@@ -9229,7 +9229,7 @@ static struct ath12k_hw *ath12k_mac_hw_allocate(struct ath12k_base *ab,
                ar = ath12k_ah_to_ar(ah, i);
                ar->ah = ah;
                ar->ab = ab;
-               ar->hw_link_id = i;
+               ar->hw_link_id = pdev->hw_link_id;
                ar->pdev = pdev;
                ar->pdev_idx = pdev_idx;
                pdev->ar = ar;
index 99106b088311c115ac3dccc567e600298c4c9232..d6e1d1398cdbd911a04766a318d4c1c3cbcc32e5 100644 (file)
@@ -500,6 +500,7 @@ ath12k_pull_mac_phy_cap_svc_ready_ext(struct ath12k_wmi_pdev *wmi_handle,
        mac_caps = wmi_mac_phy_caps + phy_idx;
 
        pdev->pdev_id = ath12k_wmi_mac_phy_get_pdev_id(mac_caps);
+       pdev->hw_link_id = ath12k_wmi_mac_phy_get_hw_link_id(mac_caps);
        pdev_cap->supported_bands |= le32_to_cpu(mac_caps->supported_bands);
        pdev_cap->ampdu_density = le32_to_cpu(mac_caps->ampdu_density);