Search Linux Wireless

Re: [PATCH ath12k-ng 7/8] wifi: ath12k: Remove hal_rx_ops and merge into hal_ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 9/9/2025 9:12 AM, Baochen Qiang wrote:
> 
> 
> On 9/9/2025 12:27 AM, Ripan Deuri wrote:
>> Move following ops from hal_rx_ops to hal_ops to simplify the HAL interface.
>>
>> rx_desc_get_l3_pad_bytes
>> rx_desc_get_mpdu_start_tag
>> rx_desc_get_mpdu_ppdu_id
>> rx_desc_get_msdu_payload
>>
>> Remove the compact_ops as they become unused with this change.
> 
> Are you intending to say hal_rx_ops?

Yes, will use hal_rx_ops here in the next revision.

> 
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
>> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>>
>> Signed-off-by: Ripan Deuri <quic_rdeuri@xxxxxxxxxxx>
>> ---
>>  drivers/net/wireless/ath/ath12k/core.h      |  2 --
>>  drivers/net/wireless/ath/ath12k/dp_mon.c    |  2 +-
>>  drivers/net/wireless/ath/ath12k/dp_rx.h     |  6 +++---
>>  drivers/net/wireless/ath/ath12k/hal.c       | 22 +++++++--------------
>>  drivers/net/wireless/ath/ath12k/hal.h       | 14 ++++---------
>>  drivers/net/wireless/ath/ath12k/wifi7/pci.c |  2 --
>>  6 files changed, 15 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath12k/core.h b/drivers/net/wireless/ath/ath12k/core.h
>> index b68f063283fe..9ae98556dd94 100644
>> --- a/drivers/net/wireless/ath/ath12k/core.h
>> +++ b/drivers/net/wireless/ath/ath12k/core.h
>> @@ -1196,8 +1196,6 @@ struct ath12k_base {
>>  		bool fw_features_valid;
>>  	} fw;
>>  
>> -	const struct hal_rx_ops *hal_rx_ops;
>> -
>>  	struct completion restart_completed;
>>  
>>  #ifdef CONFIG_ACPI
>> diff --git a/drivers/net/wireless/ath/ath12k/dp_mon.c b/drivers/net/wireless/ath/ath12k/dp_mon.c
>> index 0ae500ec3463..3315a9e3d40a 100644
>> --- a/drivers/net/wireless/ath/ath12k/dp_mon.c
>> +++ b/drivers/net/wireless/ath/ath12k/dp_mon.c
>> @@ -2046,7 +2046,7 @@ ath12k_dp_mon_rx_merg_msdus(struct ath12k *ar,
>>  
>>  		rx_desc = (struct hal_rx_desc *)head_msdu->data;
>>  		hdr_desc =
>> -			ab->hal_rx_ops->rx_desc_get_msdu_payload(rx_desc);
>> +			ab->hw_params->hal_ops->rx_desc_get_msdu_payload(rx_desc);
>>  
>>  		/* Base size */
>>  		wh = (struct ieee80211_hdr_3addr *)hdr_desc;
>> diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.h b/drivers/net/wireless/ath/ath12k/dp_rx.h
>> index 432707d60fca..ff214bff389b 100644
>> --- a/drivers/net/wireless/ath/ath12k/dp_rx.h
>> +++ b/drivers/net/wireless/ath/ath12k/dp_rx.h
>> @@ -109,7 +109,7 @@ static inline u16 ath12k_dp_rx_h_frag_no(struct ath12k_base *ab,
>>  static inline u8 ath12k_dp_rx_h_l3pad(struct ath12k_base *ab,
>>  				      struct hal_rx_desc *desc)
>>  {
>> -	return ab->hal_rx_ops->rx_desc_get_l3_pad_bytes(desc);
>> +	return ab->hw_params->hal_ops->rx_desc_get_l3_pad_bytes(desc);
>>  }
>>  
>>  static inline void ath12k_dp_rx_desc_end_tlv_copy(struct ath12k_base *ab,
>> @@ -129,7 +129,7 @@ static inline void ath12k_dp_rxdesc_set_msdu_len(struct ath12k_base *ab,
>>  static inline u32 ath12k_dp_rxdesc_get_ppduid(struct ath12k_base *ab,
>>  					      struct hal_rx_desc *rx_desc)
>>  {
>> -	return ab->hal_rx_ops->rx_desc_get_mpdu_ppdu_id(rx_desc);
>> +	return ab->hw_params->hal_ops->rx_desc_get_mpdu_ppdu_id(rx_desc);
>>  }
>>  
>>  static inline bool ath12k_dp_rxdesc_mpdu_valid(struct ath12k_base *ab,
>> @@ -137,7 +137,7 @@ static inline bool ath12k_dp_rxdesc_mpdu_valid(struct ath12k_base *ab,
>>  {
>>  	u32 tlv_tag;
>>  
>> -	tlv_tag = ab->hal_rx_ops->rx_desc_get_mpdu_start_tag(rx_desc);
>> +	tlv_tag = ab->hw_params->hal_ops->rx_desc_get_mpdu_start_tag(rx_desc);
>>  
>>  	return tlv_tag == HAL_RX_MPDU_START;
>>  }
>> diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c
>> index db6294ba6771..a14a7d8dc69f 100644
>> --- a/drivers/net/wireless/ath/ath12k/hal.c
>> +++ b/drivers/net/wireless/ath/ath12k/hal.c
>> @@ -406,13 +406,6 @@ static int ath12k_hal_srng_create_config_qcn9274(struct ath12k_base *ab)
>>  	return 0;
>>  }
>>  
>> -const struct hal_rx_ops hal_rx_qcn9274_compact_ops = {
>> -	.rx_desc_get_l3_pad_bytes = ath12k_hal_rx_desc_get_l3_pad_bytes_qcn9274,
>> -	.rx_desc_get_mpdu_ppdu_id = ath12k_hal_rx_desc_get_mpdu_ppdu_id_qcn9274,
>> -	.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_qcn9274,
>> -};
>> -EXPORT_SYMBOL(hal_rx_qcn9274_compact_ops);
>> -
>>  const struct hal_ops hal_qcn9274_ops = {
>>  	.create_srng_config = ath12k_hal_srng_create_config_qcn9274,
>>  	.tcl_to_wbm_rbm_map = ath12k_hal_qcn9274_tcl_to_wbm_rbm_map,
>> @@ -423,6 +416,9 @@ const struct hal_ops hal_qcn9274_ops = {
>>  	.rx_desc_get_msdu_src_link_id = ath12k_hal_rx_desc_get_msdu_src_link_qcn9274,
>>  	.extract_rx_desc_data = ath12k_hal_extract_rx_desc_data_qcn9274,
>>  	.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_qcn9274,
>> +	.rx_desc_get_l3_pad_bytes = ath12k_hal_rx_desc_get_l3_pad_bytes_qcn9274,
>> +	.rx_desc_get_mpdu_ppdu_id = ath12k_hal_rx_desc_get_mpdu_ppdu_id_qcn9274,
>> +	.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_qcn9274,
>>  };
>>  EXPORT_SYMBOL(hal_qcn9274_ops);
>>  
>> @@ -550,14 +546,6 @@ static int ath12k_hal_srng_create_config_wcn7850(struct ath12k_base *ab)
>>  	return 0;
>>  }
>>  
>> -const struct hal_rx_ops hal_rx_wcn7850_ops = {
>> -	.rx_desc_get_l3_pad_bytes = ath12k_hal_rx_desc_get_l3_pad_bytes_wcn7850,
>> -	.rx_desc_get_mpdu_start_tag = ath12k_hal_rx_desc_get_mpdu_start_tag_wcn7850,
>> -	.rx_desc_get_mpdu_ppdu_id = ath12k_hal_rx_desc_get_mpdu_ppdu_id_wcn7850,
>> -	.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_wcn7850,
>> -};
>> -EXPORT_SYMBOL(hal_rx_wcn7850_ops);
>> -
>>  const struct hal_ops hal_wcn7850_ops = {
>>  	.create_srng_config = ath12k_hal_srng_create_config_wcn7850,
>>  	.tcl_to_wbm_rbm_map = ath12k_hal_wcn7850_tcl_to_wbm_rbm_map,
>> @@ -568,6 +556,10 @@ const struct hal_ops hal_wcn7850_ops = {
>>  	.rx_desc_get_msdu_src_link_id = ath12k_hal_rx_desc_get_msdu_src_link_wcn7850,
>>  	.extract_rx_desc_data = ath12k_hal_extract_rx_desc_data_wcn7850,
>>  	.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_wcn7850,
>> +	.rx_desc_get_l3_pad_bytes = ath12k_hal_rx_desc_get_l3_pad_bytes_wcn7850,
>> +	.rx_desc_get_mpdu_start_tag = ath12k_hal_rx_desc_get_mpdu_start_tag_wcn7850,
>> +	.rx_desc_get_mpdu_ppdu_id = ath12k_hal_rx_desc_get_mpdu_ppdu_id_wcn7850,
>> +	.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_wcn7850,
>>  };
>>  EXPORT_SYMBOL(hal_wcn7850_ops);
>>  
>> diff --git a/drivers/net/wireless/ath/ath12k/hal.h b/drivers/net/wireless/ath/ath12k/hal.h
>> index 37593bb7953b..692d495d01c9 100644
>> --- a/drivers/net/wireless/ath/ath12k/hal.h
>> +++ b/drivers/net/wireless/ath/ath12k/hal.h
>> @@ -1578,13 +1578,6 @@ enum nl80211_he_ru_alloc ath12k_he_ru_tones_to_nl80211_he_ru_alloc(u16 ru_tones)
>>  	return ret;
>>  }
>>  
>> -struct hal_rx_ops {
>> -	u8 (*rx_desc_get_l3_pad_bytes)(struct hal_rx_desc *desc);
>> -	u32 (*rx_desc_get_mpdu_start_tag)(struct hal_rx_desc *desc);
>> -	u32 (*rx_desc_get_mpdu_ppdu_id)(struct hal_rx_desc *desc);
>> -	u8 *(*rx_desc_get_msdu_payload)(struct hal_rx_desc *desc);
>> -};
>> -
>>  struct hal_ops {
>>  	int (*create_srng_config)(struct ath12k_base *ab);
>>  	const struct ath12k_hal_tcl_to_wbm_rbm_map *tcl_to_wbm_rbm_map;
>> @@ -1601,14 +1594,15 @@ struct hal_ops {
>>  				     struct hal_rx_desc *rx_desc,
>>  				     struct hal_rx_desc *ldesc);
>>  	u32 (*rx_desc_get_desc_size)(void);
>> +	u32 (*rx_desc_get_mpdu_start_tag)(struct hal_rx_desc *desc);
>> +	u32 (*rx_desc_get_mpdu_ppdu_id)(struct hal_rx_desc *desc);
>> +	u8 (*rx_desc_get_l3_pad_bytes)(struct hal_rx_desc *desc);
>> +	u8 *(*rx_desc_get_msdu_payload)(struct hal_rx_desc *desc);
>>  };
>>  
>>  extern const struct hal_ops hal_qcn9274_ops;
>>  extern const struct hal_ops hal_wcn7850_ops;
>>  
>> -extern const struct hal_rx_ops hal_rx_qcn9274_compact_ops;
>> -extern const struct hal_rx_ops hal_rx_wcn7850_ops;
>> -
>>  u32 ath12k_hal_reo_qdesc_size(u32 ba_window_size, u8 tid);
>>  void ath12k_hal_reo_qdesc_setup(struct hal_rx_reo_queue *qdesc,
>>  				int tid, u32 ba_window_size,
>> diff --git a/drivers/net/wireless/ath/ath12k/wifi7/pci.c b/drivers/net/wireless/ath/ath12k/wifi7/pci.c
>> index abdb3b8ff658..ba8c19c24ae6 100644
>> --- a/drivers/net/wireless/ath/ath12k/wifi7/pci.c
>> +++ b/drivers/net/wireless/ath/ath12k/wifi7/pci.c
>> @@ -101,7 +101,6 @@ static int ath12k_wifi7_pci_probe(struct pci_dev *pdev,
>>  		ab_pci->msi_config = &ath12k_wifi7_msi_config[0];
>>  		ab->static_window_map = true;
>>  		ab_pci->pci_ops = &ath12k_wifi7_pci_ops_qcn9274;
>> -		ab->hal_rx_ops = &hal_rx_qcn9274_compact_ops;
>>  		ath12k_wifi7_pci_read_hw_version(ab, &soc_hw_version_major,
>>  						 &soc_hw_version_minor);
>>  		ab->target_mem_mode = ath12k_core_get_memory_mode(ab);
>> @@ -124,7 +123,6 @@ static int ath12k_wifi7_pci_probe(struct pci_dev *pdev,
>>  		ab_pci->msi_config = &ath12k_wifi7_msi_config[0];
>>  		ab->static_window_map = false;
>>  		ab_pci->pci_ops = &ath12k_wifi7_pci_ops_wcn7850;
>> -		ab->hal_rx_ops = &hal_rx_wcn7850_ops;
>>  		ath12k_wifi7_pci_read_hw_version(ab, &soc_hw_version_major,
>>  						 &soc_hw_version_minor);
>>  		ab->target_mem_mode = ATH12K_QMI_MEMORY_MODE_DEFAULT;
> 





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux