[PATCH 1/3] ath11k: add htt cmd to enable full monitor mode

Anilkumar Kolli akolli at codeaurora.org
Sun Sep 26 21:31:56 PDT 2021


On 2021-09-24 19:22, Kalle Valo wrote:
> Jouni Malinen <jouni at codeaurora.org> writes:
> 
>> From: Anilkumar Kolli <akolli at codeaurora.org>
>> 
>> 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 at codeaurora.org>
>> Signed-off-by: Jouni Malinen <jouni at codeaurora.org>
>> ---
>>  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.
> 

Thanks. 'full_monitor_mode = false' to be added.

>> --- 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;
> 		}

Thanks.
-- 
- Anil.



More information about the ath11k mailing list