ath11k_nss: Check for NSS FW 11.4 and build accordingly

Some features are not available in NSS firmware 11.4.0.5
* `NSS_WIFI_VDEV_EXT_DATA_PKT_TYPE_4ADDR`

This was introduced in `NHSS.QSDK.11.5`. To avoid unexpected issues,
disable the case check for `NSS_WIFI_VDEV_EXT_DATA_PKT_TYPE_4ADDR` if
`CONFIG_NSS_FIRMWARE_VERSION_11_4` is selected.

Signed-off-by: Sean Khan <datapronix@protonmail.com>

ath11k_nss: rename '*.patch.patch' to '.patch'

Signed-off-by: Sean Khan <datapronix@protonmail.com>
This commit is contained in:
Sean Khan
2024-07-10 15:48:47 -04:00
parent 09b44ecee4
commit e6b9a0deb1
2 changed files with 35 additions and 0 deletions

View File

@@ -309,6 +309,10 @@ ifdef CONFIG_ATH11K_NSS_SUPPORT
IREMAP_CFLAGS+=-I$(STAGING_DIR)/usr/include/qca-nss-drv -I$(STAGING_DIR)/usr/include/qca-nss-clients
endif
ifeq ($(CONFIG_NSS_FIRMWARE_VERSION_11_4),y)
C_DEFINES+=-DCONFIG_NSS_FIRMWARE_VERSION_11_4
endif
config-$(CONFIG_PACKAGE_MAC80211_NSS_SUPPORT) += MAC80211_NSS_SUPPORT
MAKE_OPTS:= \

View File

@@ -0,0 +1,31 @@
--- a/drivers/net/wireless/ath/ath11k/nss.c
+++ b/drivers/net/wireless/ath/ath11k/nss.c
@@ -818,9 +818,11 @@ ath11k_nss_vdev_special_data_receive(str
bool eth_decap = false;
int data_offs = 0;
int ret = 0;
- struct nss_wifi_vdev_addr4_data_metadata *addr4_metadata = NULL;
struct ath11k_skb_rxcb *rxcb;
+#ifndef CONFIG_NSS_FIRMWARE_VERSION_11_4
+ struct nss_wifi_vdev_addr4_data_metadata *addr4_metadata = NULL;
struct ath11k_peer *ta_peer = NULL;
+#endif
arvif = ath11k_nss_get_arvif_from_dev(dev);
if (!arvif) {
@@ -872,6 +874,7 @@ ath11k_nss_vdev_special_data_receive(str
rxcb->is_mcbc = true;
ath11k_dp_rx_from_nss(arvif->ar, skb, napi);
break;
+#ifndef CONFIG_NSS_FIRMWARE_VERSION_11_4
case NSS_WIFI_VDEV_EXT_DATA_PKT_TYPE_4ADDR:
if (eth_decap) {
addr4_metadata = &wifi_metadata->metadata.addr4_metadata;
@@ -891,6 +894,7 @@ ath11k_nss_vdev_special_data_receive(str
spin_unlock_bh(&ab->base_lock);
}
dev_kfree_skb_any(skb);
+#endif
break;
default:
ath11k_warn(ab, "unsupported pkt_type %d from nss\n", wifi_metadata->pkt_type);