Jouni Malinen <jouni@xxxxxxxxxxxxxx> writes: > From: Anilkumar Kolli <akolli@xxxxxxxxxxxxxx> > > Add a new hw_param full_monitor_mode to enable full monitor support for > QCN9074. HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE cmd is sent to the > firmware to enable the full monitor mode. > > Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01734-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Anilkumar Kolli <akolli@xxxxxxxxxxxxxx> > Signed-off-by: Jouni Malinen <jouni@xxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath11k/core.c | 4 ++ > drivers/net/wireless/ath/ath11k/dp.h | 74 +++++++++++++++++++++++++ > drivers/net/wireless/ath/ath11k/dp_tx.c | 48 ++++++++++++++++ > drivers/net/wireless/ath/ath11k/dp_tx.h | 2 + > drivers/net/wireless/ath/ath11k/hw.h | 1 + > 5 files changed, 129 insertions(+) > > diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c > index 969bf1a590d9..3179495cb3c9 100644 > --- a/drivers/net/wireless/ath/ath11k/core.c > +++ b/drivers/net/wireless/ath/ath11k/core.c > @@ -65,6 +65,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { > BIT(NL80211_IFTYPE_AP) | > BIT(NL80211_IFTYPE_MESH_POINT), > .supports_monitor = true, > + .full_monitor_mode = false, > .supports_shadow_regs = false, > .idle_ps = false, > .cold_boot_calib = true, > @@ -106,6 +107,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { > BIT(NL80211_IFTYPE_AP) | > BIT(NL80211_IFTYPE_MESH_POINT), > .supports_monitor = true, > + .full_monitor_mode = false, > .supports_shadow_regs = false, > .idle_ps = false, > .cold_boot_calib = true, > @@ -146,6 +148,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { > .interface_modes = BIT(NL80211_IFTYPE_STATION) | > BIT(NL80211_IFTYPE_AP), > .supports_monitor = false, > + .full_monitor_mode = false, > .supports_shadow_regs = true, > .idle_ps = true, > .cold_boot_calib = false, > @@ -184,6 +187,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { > BIT(NL80211_IFTYPE_AP) | > BIT(NL80211_IFTYPE_MESH_POINT), > .supports_monitor = true, > + .full_monitor_mode = true, > .supports_shadow_regs = false, > .idle_ps = false, > .cold_boot_calib = false, wcn6855 was not updated, I added that. > --- a/drivers/net/wireless/ath/ath11k/dp_tx.c > +++ b/drivers/net/wireless/ath/ath11k/dp_tx.c > @@ -1034,6 +1034,15 @@ int ath11k_dp_tx_htt_monitor_mode_ring_config(struct ath11k *ar, bool reset) > struct htt_rx_ring_tlv_filter tlv_filter = {0}; > int ret = 0, ring_id = 0, i; > > + if (ab->hw_params.full_monitor_mode) { > + ret = ath11k_dp_tx_htt_rx_full_mon_setup(ab, > + dp->mac_id, !reset); > + if (ret < 0) { > + ath11k_err(ab, "failed to setup full monitor %d\n", ret); I changed this to: if (ret) { ath11k_warn(ab, "failed to setup full monitor: %d\n", ret); return ret; } -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches