mbox series

[00/11] wifi: ath12k: some fixes and clean up for monitor mode

Message ID 20240725120035.493-1-quic_kangyang@quicinc.com
Headers show
Series wifi: ath12k: some fixes and clean up for monitor mode | expand

Message

Kang Yang July 25, 2024, noon UTC
From: Kang Yang <quic_kangyang@quicinc.com>

This patch set does some fixes and clean up for monitor mode.

Kang Yang (11):
  wifi: ath12k: remove unused variable monitor_present
  wifi: ath12k: optimize storage size for struct ath12k
  wifi: ath12k: fix struct hal_rx_ppdu_end_user_stats
  wifi: ath12k: fix struct hal_rx_ppdu_start
  wifi: ath12k: fix struct hal_rx_phyrx_rssi_legacy_info
  wifi: ath12k: fix struct hal_rx_mpdu_start
  wifi: ath12k: properly handling the state variables of monitor mode
  wifi: ath12k: delete NSS and TX power setting for monitor vdev
  wifi: ath12k: use tail MSDU to get MSDU information
  wifi: ath12k: fix A-MSDU indication in monitor mode
  wifi: ath12k: delete mon reap timer

 drivers/net/wireless/ath/ath12k/core.c   |   5 ++
 drivers/net/wireless/ath/ath12k/core.h   |  23 +++--
 drivers/net/wireless/ath/ath12k/dp.c     |  25 ------
 drivers/net/wireless/ath/ath12k/dp_mon.c | 108 ++++++++++++-----------
 drivers/net/wireless/ath/ath12k/hal_rx.h |  53 ++++++-----
 drivers/net/wireless/ath/ath12k/mac.c    |  24 +++--
 6 files changed, 114 insertions(+), 124 deletions(-)


base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45

Comments

Jeff Johnson July 26, 2024, 12:11 a.m. UTC | #1
On 7/25/2024 5:00 AM, kangyang wrote:
> From: Kang Yang <quic_kangyang@quicinc.com>
> 
> This patch set does some fixes and clean up for monitor mode.
> 
> Kang Yang (11):
>   wifi: ath12k: remove unused variable monitor_present
>   wifi: ath12k: optimize storage size for struct ath12k
>   wifi: ath12k: fix struct hal_rx_ppdu_end_user_stats
>   wifi: ath12k: fix struct hal_rx_ppdu_start
>   wifi: ath12k: fix struct hal_rx_phyrx_rssi_legacy_info
>   wifi: ath12k: fix struct hal_rx_mpdu_start
>   wifi: ath12k: properly handling the state variables of monitor mode
>   wifi: ath12k: delete NSS and TX power setting for monitor vdev
>   wifi: ath12k: use tail MSDU to get MSDU information
>   wifi: ath12k: fix A-MSDU indication in monitor mode
>   wifi: ath12k: delete mon reap timer
> 
>  drivers/net/wireless/ath/ath12k/core.c   |   5 ++
>  drivers/net/wireless/ath/ath12k/core.h   |  23 +++--
>  drivers/net/wireless/ath/ath12k/dp.c     |  25 ------
>  drivers/net/wireless/ath/ath12k/dp_mon.c | 108 ++++++++++++-----------
>  drivers/net/wireless/ath/ath12k/hal_rx.h |  53 ++++++-----
>  drivers/net/wireless/ath/ath12k/mac.c    |  24 +++--
>  6 files changed, 114 insertions(+), 124 deletions(-)
> 
> 
> base-commit: db1ce56e6e1d395dd42a3cd6332a871d9be59c45

Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Jeff Johnson July 26, 2024, 12:11 a.m. UTC | #2
On 7/25/2024 5:00 AM, kangyang wrote:
> From: Kang Yang <quic_kangyang@quicinc.com>
> 
> Variable monitor_present is never used. So delete it.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Jeff Johnson July 26, 2024, 12:17 a.m. UTC | #3
On 7/25/2024 5:00 AM, kangyang wrote:
> From: Kang Yang <quic_kangyang@quicinc.com>
> 
> Current struct hal_rx_phyrx_rssi_legacy_info in hal_rx.h is not matched
> with hardware descriptor definition.
> 
> So update this structure and related code.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
Jeff Johnson July 26, 2024, 12:17 a.m. UTC | #4
On 7/25/2024 5:00 AM, kangyang wrote:
> From: Kang Yang <quic_kangyang@quicinc.com>
> 
> Now monitor mode has some status variables, such as monitor_started,
> monitor_vdev_created. They are not always handled correctly.
> 
> For monitor_started, it should be true when driver works in monitor
> mode, and should be false at other times.
> 
> For monitor_vdev_id, it should be -1 when driver doesn't work in monitor
> mode.
> 
> For monitor_vdev_created, it should be true after monitor vdev is
> created successfully and should be false at other times.
> 
> For monitor_conf_enabled, it should be true when mac80211 sets
> IEEE80211_CONF_MONITOR, and should be false at other times.
> 
> Handle those state variables according to above descriptions.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
Jeff Johnson July 26, 2024, 12:18 a.m. UTC | #5
On 7/25/2024 5:00 AM, kangyang wrote:
> From: Kang Yang <quic_kangyang@quicinc.com>
> 
> Currently mon reap timer is not used, and it is not needed anymore.
> 
> So remove related code.
> 
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
> ---
>  drivers/net/wireless/ath/ath12k/core.h |  2 --
>  drivers/net/wireless/ath/ath12k/dp.c   | 25 -------------------------
>  2 files changed, 27 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
> index daf7c04bb728..83ef92ecdc39 100644
> --- a/drivers/net/wireless/ath/ath12k/core.h
> +++ b/drivers/net/wireless/ath/ath12k/core.h
> @@ -888,8 +888,6 @@ struct ath12k_base {
>  	struct ath12k_dbring_cap *db_caps;
>  	u32 num_db_cap;
>  
> -	struct timer_list mon_reap_timer;
> -
>  	struct completion htc_suspend;
>  
>  	u64 fw_soc_drop_count;
> diff --git a/drivers/net/wireless/ath/ath12k/dp.c b/drivers/net/wireless/ath/ath12k/dp.c
> index 61aa78d8bd8c..547ecb419809 100644
> --- a/drivers/net/wireless/ath/ath12k/dp.c
> +++ b/drivers/net/wireless/ath/ath12k/dp.c
> @@ -974,8 +974,6 @@ void ath12k_dp_pdev_free(struct ath12k_base *ab)
>  {
>  	int i;
>  
> -	del_timer_sync(&ab->mon_reap_timer);
> -
>  	for (i = 0; i < ab->num_radios; i++)
>  		ath12k_dp_rx_pdev_free(ab, i);
>  }
> @@ -1020,27 +1018,6 @@ void ath12k_dp_hal_rx_desc_init(struct ath12k_base *ab)
>  		ab->hal_rx_ops->rx_desc_get_desc_size();
>  }
>  
> -static void ath12k_dp_service_mon_ring(struct timer_list *t)
> -{
> -	struct ath12k_base *ab = from_timer(ab, t, mon_reap_timer);
> -	int i;
> -
> -	for (i = 0; i < ab->hw_params->num_rxdma_per_pdev; i++)
> -		ath12k_dp_mon_process_ring(ab, i, NULL, DP_MON_SERVICE_BUDGET,
> -					   ATH12K_DP_RX_MONITOR_MODE);
> -
> -	mod_timer(&ab->mon_reap_timer, jiffies +
> -		  msecs_to_jiffies(ATH12K_MON_TIMER_INTERVAL));
> -}
> -
> -static void ath12k_dp_mon_reap_timer_init(struct ath12k_base *ab)
> -{
> -	if (ab->hw_params->rxdma1_enable)
> -		return;
> -
> -	timer_setup(&ab->mon_reap_timer, ath12k_dp_service_mon_ring, 0);
> -}
> -
>  int ath12k_dp_pdev_alloc(struct ath12k_base *ab)
>  {
>  	struct ath12k *ar;
> @@ -1051,8 +1028,6 @@ int ath12k_dp_pdev_alloc(struct ath12k_base *ab)
>  	if (ret)
>  		goto out;
>  
> -	ath12k_dp_mon_reap_timer_init(ab);
> -
>  	/* TODO: Per-pdev rx ring unlike tx ring which is mapped to different AC's */
>  	for (i = 0; i < ab->num_radios; i++) {
>  		ar = ab->pdevs[i].ar;
Ping-Ke Shih July 26, 2024, 1:57 a.m. UTC | #6
Hi Jeff,

Jeff Johnson <quic_jjohnson@quicinc.com> wrote:
> 
> On 7/25/2024 5:00 AM, kangyang wrote:
> > From: Kang Yang <quic_kangyang@quicinc.com>
> >
> > Currently mon reap timer is not used, and it is not needed anymore.
> >
> > So remove related code.
> >
> > Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> >
> > Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
> > ---
> >  drivers/net/wireless/ath/ath12k/core.h |  2 --
> >  drivers/net/wireless/ath/ath12k/dp.c   | 25 -------------------------
> >  2 files changed, 27 deletions(-)
> >
> > diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
> > index daf7c04bb728..83ef92ecdc39 100644
> > --- a/drivers/net/wireless/ath/ath12k/core.h
> > +++ b/drivers/net/wireless/ath/ath12k/core.h
> > @@ -888,8 +888,6 @@ struct ath12k_base {
> >       struct ath12k_dbring_cap *db_caps;
> >       u32 num_db_cap;
> >
> > -     struct timer_list mon_reap_timer;
> > -
> >       struct completion htc_suspend;
> >
> >       u64 fw_soc_drop_count;
> > diff --git a/drivers/net/wireless/ath/ath12k/dp.c b/drivers/net/wireless/ath/ath12k/dp.c
> > index 61aa78d8bd8c..547ecb419809 100644
> > --- a/drivers/net/wireless/ath/ath12k/dp.c
> > +++ b/drivers/net/wireless/ath/ath12k/dp.c
> > @@ -974,8 +974,6 @@ void ath12k_dp_pdev_free(struct ath12k_base *ab)
> >  {
> >       int i;
> >
> > -     del_timer_sync(&ab->mon_reap_timer);
> > -
> >       for (i = 0; i < ab->num_radios; i++)
> >               ath12k_dp_rx_pdev_free(ab, i);
> >  }
> > @@ -1020,27 +1018,6 @@ void ath12k_dp_hal_rx_desc_init(struct ath12k_base *ab)
> >               ab->hal_rx_ops->rx_desc_get_desc_size();
> >  }
> >
> > -static void ath12k_dp_service_mon_ring(struct timer_list *t)
> > -{
> > -     struct ath12k_base *ab = from_timer(ab, t, mon_reap_timer);
> > -     int i;
> > -
> > -     for (i = 0; i < ab->hw_params->num_rxdma_per_pdev; i++)
> > -             ath12k_dp_mon_process_ring(ab, i, NULL, DP_MON_SERVICE_BUDGET,
> > -                                        ATH12K_DP_RX_MONITOR_MODE);
> > -
> > -     mod_timer(&ab->mon_reap_timer, jiffies +
> > -               msecs_to_jiffies(ATH12K_MON_TIMER_INTERVAL));
> > -}
> > -
> > -static void ath12k_dp_mon_reap_timer_init(struct ath12k_base *ab)
> > -{
> > -     if (ab->hw_params->rxdma1_enable)
> > -             return;
> > -
> > -     timer_setup(&ab->mon_reap_timer, ath12k_dp_service_mon_ring, 0);
> > -}
> > -
> >  int ath12k_dp_pdev_alloc(struct ath12k_base *ab)
> >  {
> >       struct ath12k *ar;
> > @@ -1051,8 +1028,6 @@ int ath12k_dp_pdev_alloc(struct ath12k_base *ab)
> >       if (ret)
> >               goto out;
> >
> > -     ath12k_dp_mon_reap_timer_init(ab);
> > -
> >       /* TODO: Per-pdev rx ring unlike tx ring which is mapped to different AC's */
> >       for (i = 0; i < ab->num_radios; i++) {
> >               ar = ab->pdevs[i].ar;
> 

Not sure if you send out this mail incompletely. Lore [1] doesn't have complete
message neither.

[1] https://lore.kernel.org/linux-wireless/2a44b24b-f122-44de-a053-fee07753eb7e@quicinc.com/T/#m1011a89113009a14c9d450dba31d8d11d36b5b6b
Jeff Johnson July 26, 2024, 5:04 p.m. UTC | #7
On 7/25/2024 6:57 PM, Ping-Ke Shih wrote:

> Not sure if you send out this mail incompletely. Lore [1] doesn't have complete
> message neither.
> 
> [1] https://lore.kernel.org/linux-wireless/2a44b24b-f122-44de-a053-fee07753eb7e@quicinc.com/T/#m1011a89113009a14c9d450dba31d8d11d36b5b6b

Thanks for catching this, now sent with my Acked-by properly added.
Kalle Valo July 31, 2024, 11:19 a.m. UTC | #8
kangyang <quic_kangyang@quicinc.com> writes:

> From: Kang Yang <quic_kangyang@quicinc.com>
>
> This patch set does some fixes and clean up for monitor mode.

Please fix your SMTP From header, it's currently:

kangyang <quic_kangyang@quicinc.com>

It should be:

Kang Yang <quic_kangyang@quicinc.com>

When you fix that git won't include the extra From header to the mail body.
Kang Yang Aug. 1, 2024, 6:08 a.m. UTC | #9
On 7/31/2024 7:19 PM, Kalle Valo wrote:
> kangyang <quic_kangyang@quicinc.com> writes:
> 
>> From: Kang Yang <quic_kangyang@quicinc.com>
>>
>> This patch set does some fixes and clean up for monitor mode.
> 
> Please fix your SMTP From header, it's currently:
> 
> kangyang <quic_kangyang@quicinc.com>
> 
> It should be:
> 
> Kang Yang <quic_kangyang@quicinc.com>
> 
> When you fix that git won't include the extra From header to the mail body.
> 

Thanks for the reminder, changed.