mac80211: add ath11k PCI support
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / ath11k / 0007-wifi-ath11k-suppress-add-interface-error.patch
diff --git a/package/kernel/mac80211/patches/ath11k/0007-wifi-ath11k-suppress-add-interface-error.patch b/package/kernel/mac80211/patches/ath11k/0007-wifi-ath11k-suppress-add-interface-error.patch
new file mode 100644 (file)
index 0000000..fbef0ab
--- /dev/null
@@ -0,0 +1,52 @@
+From 638b26652b0438563a76ec90014c8cba34db982b Mon Sep 17 00:00:00 2001
+From: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
+Date: Thu, 6 Oct 2022 06:28:42 +0530
+Subject: [PATCH 7/9] wifi: ath11k: suppress add interface error
+
+In the VIF (other than monitor type) creation request, we should not
+throw the error code when the monitor VIF creation fails, since the
+actual VIF creation succeeds. If we throw the error code from driver
+then the actual VIF creation get fail. So suppress the monitor VIF
+creation error by throwing warning message instead of error code.
+
+Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.6.0.1-00760-QCAHKSWPL_SILICONZ-1
+
+Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
+Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
+Link: https://lore.kernel.org/r/20221006005842.8599-1-quic_periyasa@quicinc.com
+---
+ drivers/net/wireless/ath/ath11k/mac.c | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath11k/mac.c
++++ b/drivers/net/wireless/ath/ath11k/mac.c
+@@ -6421,18 +6421,16 @@ static int ath11k_mac_op_add_interface(s
+       ath11k_dp_vdev_tx_attach(ar, arvif);
++      ath11k_debugfs_add_interface(arvif);
++
+       if (vif->type != NL80211_IFTYPE_MONITOR &&
+           test_bit(ATH11K_FLAG_MONITOR_CONF_ENABLED, &ar->monitor_flags)) {
+               ret = ath11k_mac_monitor_vdev_create(ar);
+-              if (ret) {
++              if (ret)
+                       ath11k_warn(ar->ab, "failed to create monitor vdev during add interface: %d",
+                                   ret);
+-                      goto err_peer_del;
+-              }
+       }
+-      ath11k_debugfs_add_interface(arvif);
+-
+       mutex_unlock(&ar->conf_mutex);
+       return 0;
+@@ -6457,7 +6455,6 @@ err_vdev_del:
+       spin_unlock_bh(&ar->data_lock);
+ err:
+-      ath11k_debugfs_remove_interface(arvif);
+       mutex_unlock(&ar->conf_mutex);
+       return ret;