diff mbox series

wifi: ath12k: enable service flag for survey dump stats

Message ID 20240409175604.3299752-1-quic_kathirve@quicinc.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show
Series wifi: ath12k: enable service flag for survey dump stats | expand

Commit Message

Karthikeyan Kathirvel April 9, 2024, 5:56 p.m. UTC
From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>

The survey dump statistics does not display channel RX and TX time
properly because the survey flag is not enabled in the firmware service
flag.

If firmware supports enable the service flag "bss_chan_info" in
wmi_resource_config to fetch and print the stats for specific pdev.

Enabling WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 does not have any impact
on WCN7850 since this bit is not utilized by the WCN7850 firmware.

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

Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
---
 drivers/net/wireless/ath/ath12k/wmi.c | 3 ++-
 drivers/net/wireless/ath/ath12k/wmi.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)


base-commit: b36766befd306a606f287b0c0f0e53d994516acb

Comments

Jeff Johnson April 10, 2024, 12:07 a.m. UTC | #1
On 4/9/2024 10:56 AM, Karthikeyan Kathirvel wrote:
> From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
> 
> The survey dump statistics does not display channel RX and TX time
> properly because the survey flag is not enabled in the firmware service
> flag.
> 
> If firmware supports enable the service flag "bss_chan_info" in
> wmi_resource_config to fetch and print the stats for specific pdev.
> 
> Enabling WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 does not have any impact
> on WCN7850 since this bit is not utilized by the WCN7850 firmware.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
> ---
>  drivers/net/wireless/ath/ath12k/wmi.c | 3 ++-
>  drivers/net/wireless/ath/ath12k/wmi.h | 1 +
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
> index a5575ce9eed4..16504786735a 100644
> --- a/drivers/net/wireless/ath/ath12k/wmi.c
> +++ b/drivers/net/wireless/ath/ath12k/wmi.c
> @@ -3324,7 +3324,8 @@ ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cf
>  	wmi_cfg->bpf_instruction_size = cpu_to_le32(tg_cfg->bpf_instruction_size);
>  	wmi_cfg->max_bssid_rx_filters = cpu_to_le32(tg_cfg->max_bssid_rx_filters);
>  	wmi_cfg->use_pdev_id = cpu_to_le32(tg_cfg->use_pdev_id);
> -	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config);
> +	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config) |
> +				     WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;

shouldn't that | operation be inside the ) ?

>  	wmi_cfg->peer_map_unmap_version = cpu_to_le32(tg_cfg->peer_map_unmap_version);
>  	wmi_cfg->sched_params = cpu_to_le32(tg_cfg->sched_params);
>  	wmi_cfg->twt_ap_pdev_count = cpu_to_le32(tg_cfg->twt_ap_pdev_count);
> diff --git a/drivers/net/wireless/ath/ath12k/wmi.h b/drivers/net/wireless/ath/ath12k/wmi.h
> index 78afc94a815d..1283d25b5cc4 100644
> --- a/drivers/net/wireless/ath/ath12k/wmi.h
> +++ b/drivers/net/wireless/ath/ath12k/wmi.h
> @@ -2400,6 +2400,7 @@ struct wmi_init_cmd {
>  
>  #define WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT 4
>  #define WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION		GENMASK(5, 4)
> +#define WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64	BIT(5)
>  
>  struct ath12k_wmi_resource_config_params {
>  	__le32 tlv_header;
> 
> base-commit: b36766befd306a606f287b0c0f0e53d994516acb
Karthikeyan Kathirvel April 10, 2024, 8:50 a.m. UTC | #2
On 4/10/2024 5:37 AM, Jeff Johnson wrote:
> On 4/9/2024 10:56 AM, Karthikeyan Kathirvel wrote:
>> From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>>
>> The survey dump statistics does not display channel RX and TX time
>> properly because the survey flag is not enabled in the firmware service
>> flag.
>>
>> If firmware supports enable the service flag "bss_chan_info" in
>> wmi_resource_config to fetch and print the stats for specific pdev.
>>
>> Enabling WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 does not have any impact
>> on WCN7850 since this bit is not utilized by the WCN7850 firmware.
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>
>> Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
>> ---
>>   drivers/net/wireless/ath/ath12k/wmi.c | 3 ++-
>>   drivers/net/wireless/ath/ath12k/wmi.h | 1 +
>>   2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
>> index a5575ce9eed4..16504786735a 100644
>> --- a/drivers/net/wireless/ath/ath12k/wmi.c
>> +++ b/drivers/net/wireless/ath/ath12k/wmi.c
>> @@ -3324,7 +3324,8 @@ ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cf
>>   	wmi_cfg->bpf_instruction_size = cpu_to_le32(tg_cfg->bpf_instruction_size);
>>   	wmi_cfg->max_bssid_rx_filters = cpu_to_le32(tg_cfg->max_bssid_rx_filters);
>>   	wmi_cfg->use_pdev_id = cpu_to_le32(tg_cfg->use_pdev_id);
>> -	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config);
>> +	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config) |
>> +				     WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;
> 
> shouldn't that | operation be inside the ) ?
Yes, will address in next version, thanks for the review Jeff

> 
>>   	wmi_cfg->peer_map_unmap_version = cpu_to_le32(tg_cfg->peer_map_unmap_version);
>>   	wmi_cfg->sched_params = cpu_to_le32(tg_cfg->sched_params);
>>   	wmi_cfg->twt_ap_pdev_count = cpu_to_le32(tg_cfg->twt_ap_pdev_count);
>> diff --git a/drivers/net/wireless/ath/ath12k/wmi.h b/drivers/net/wireless/ath/ath12k/wmi.h
>> index 78afc94a815d..1283d25b5cc4 100644
>> --- a/drivers/net/wireless/ath/ath12k/wmi.h
>> +++ b/drivers/net/wireless/ath/ath12k/wmi.h
>> @@ -2400,6 +2400,7 @@ struct wmi_init_cmd {
>>   
>>   #define WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT 4
>>   #define WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION		GENMASK(5, 4)
>> +#define WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64	BIT(5)
>>   
>>   struct ath12k_wmi_resource_config_params {
>>   	__le32 tlv_header;
>>
>> base-commit: b36766befd306a606f287b0c0f0e53d994516acb
>
Kalle Valo April 10, 2024, 9:02 a.m. UTC | #3
Karthikeyan Kathirvel <quic_kathirve@quicinc.com> writes:

> On 4/10/2024 5:37 AM, Jeff Johnson wrote:
>> On 4/9/2024 10:56 AM, Karthikeyan Kathirvel wrote:
>>> From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>>>
>>> The survey dump statistics does not display channel RX and TX time
>>> properly because the survey flag is not enabled in the firmware service
>>> flag.
>>>
>>> If firmware supports enable the service flag "bss_chan_info" in
>>> wmi_resource_config to fetch and print the stats for specific pdev.
>>>
>>> Enabling WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 does not have any impact
>>> on WCN7850 since this bit is not utilized by the WCN7850 firmware.
>>>
>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>>
>>> Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>>> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
>>> ---
>>>   drivers/net/wireless/ath/ath12k/wmi.c | 3 ++-
>>>   drivers/net/wireless/ath/ath12k/wmi.h | 1 +
>>>   2 files changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
>>> index a5575ce9eed4..16504786735a 100644
>>> --- a/drivers/net/wireless/ath/ath12k/wmi.c
>>> +++ b/drivers/net/wireless/ath/ath12k/wmi.c
>>> @@ -3324,7 +3324,8 @@ ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cf
>>>   	wmi_cfg->bpf_instruction_size = cpu_to_le32(tg_cfg->bpf_instruction_size);
>>>   	wmi_cfg->max_bssid_rx_filters = cpu_to_le32(tg_cfg->max_bssid_rx_filters);
>>>   	wmi_cfg->use_pdev_id = cpu_to_le32(tg_cfg->use_pdev_id);
>>> -	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config);
>>> +	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config) |
>>> +				     WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;
>> shouldn't that | operation be inside the ) ?
> Yes, will address in next version, thanks for the review Jeff

BTW ath12k-check should catch these kind of errors. Didn't it warn about
it or did you just skip running ath12k-check?
Karthikeyan Kathirvel April 10, 2024, 12:05 p.m. UTC | #4
On 4/10/2024 2:32 PM, Kalle Valo wrote:
> Karthikeyan Kathirvel <quic_kathirve@quicinc.com> writes:
> 
>> On 4/10/2024 5:37 AM, Jeff Johnson wrote:
>>> On 4/9/2024 10:56 AM, Karthikeyan Kathirvel wrote:
>>>> From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>>>>
>>>> The survey dump statistics does not display channel RX and TX time
>>>> properly because the survey flag is not enabled in the firmware service
>>>> flag.
>>>>
>>>> If firmware supports enable the service flag "bss_chan_info" in
>>>> wmi_resource_config to fetch and print the stats for specific pdev.
>>>>
>>>> Enabling WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 does not have any impact
>>>> on WCN7850 since this bit is not utilized by the WCN7850 firmware.
>>>>
>>>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
>>>>
>>>> Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
>>>> Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
>>>> ---
>>>>    drivers/net/wireless/ath/ath12k/wmi.c | 3 ++-
>>>>    drivers/net/wireless/ath/ath12k/wmi.h | 1 +
>>>>    2 files changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
>>>> index a5575ce9eed4..16504786735a 100644
>>>> --- a/drivers/net/wireless/ath/ath12k/wmi.c
>>>> +++ b/drivers/net/wireless/ath/ath12k/wmi.c
>>>> @@ -3324,7 +3324,8 @@ ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cf
>>>>    	wmi_cfg->bpf_instruction_size = cpu_to_le32(tg_cfg->bpf_instruction_size);
>>>>    	wmi_cfg->max_bssid_rx_filters = cpu_to_le32(tg_cfg->max_bssid_rx_filters);
>>>>    	wmi_cfg->use_pdev_id = cpu_to_le32(tg_cfg->use_pdev_id);
>>>> -	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config);
>>>> +	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config) |
>>>> +				     WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;
>>> shouldn't that | operation be inside the ) ?
>> Yes, will address in next version, thanks for the review Jeff
> 
> BTW ath12k-check should catch these kind of errors. Didn't it warn about
> it or did you just skip running ath12k-check?
> 
I was using checkpatch.pl alone, now moved to ath12k-check, ath12k-check 
warnings are fixed in "[PATCH v2] wifi: ath12k: enable service flag for 
survey dump stats"
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
index a5575ce9eed4..16504786735a 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.c
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
@@ -3324,7 +3324,8 @@  ath12k_wmi_copy_resource_config(struct ath12k_wmi_resource_config_params *wmi_cf
 	wmi_cfg->bpf_instruction_size = cpu_to_le32(tg_cfg->bpf_instruction_size);
 	wmi_cfg->max_bssid_rx_filters = cpu_to_le32(tg_cfg->max_bssid_rx_filters);
 	wmi_cfg->use_pdev_id = cpu_to_le32(tg_cfg->use_pdev_id);
-	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config);
+	wmi_cfg->flag1 = cpu_to_le32(tg_cfg->atf_config) |
+				     WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;
 	wmi_cfg->peer_map_unmap_version = cpu_to_le32(tg_cfg->peer_map_unmap_version);
 	wmi_cfg->sched_params = cpu_to_le32(tg_cfg->sched_params);
 	wmi_cfg->twt_ap_pdev_count = cpu_to_le32(tg_cfg->twt_ap_pdev_count);
diff --git a/drivers/net/wireless/ath/ath12k/wmi.h b/drivers/net/wireless/ath/ath12k/wmi.h
index 78afc94a815d..1283d25b5cc4 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.h
+++ b/drivers/net/wireless/ath/ath12k/wmi.h
@@ -2400,6 +2400,7 @@  struct wmi_init_cmd {
 
 #define WMI_RSRC_CFG_HOST_SVC_FLAG_REG_CC_EXT_SUPPORT_BIT 4
 #define WMI_RSRC_CFG_FLAGS2_RX_PEER_METADATA_VERSION		GENMASK(5, 4)
+#define WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64	BIT(5)
 
 struct ath12k_wmi_resource_config_params {
 	__le32 tlv_header;