mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
wifi: ath12k: Move hal_rx_ops callbacks to hal_ops
Move the following callbacks from hal_rx_ops to hal_ops for use in non-performance-critical paths: rx_desc_set_msdu_len rx_desc_get_dot11_hdr rx_desc_get_crypto_header rx_desc_copy_end_tlv rx_desc_get_msdu_src_link_id rx_desc_get_desc_size hal_rx_ops currently includes callbacks used in both critical and non-critical Rx paths. To reduce function pointer indirection in hot path, performance-critical ops will be consolidated into a single extraction API in a follow-up patch. Begin cleanup by migrating non-performance-critical callbacks from hal_rx_ops to hal_ops. Once the extraction API is in place, remove hal_rx_ops entirely to simplify the HAL interface. 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: Pavankumar Nandeshwar <quic_pnandesh@quicinc.com> Signed-off-by: Ripan Deuri <quic_rdeuri@quicinc.com> Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com> Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com> Link: https://patch.msgid.link/20250910181414.2062280-6-quic_rdeuri@quicinc.com Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
This commit is contained in:
parent
5253733969
commit
92541061a6
|
|
@ -897,7 +897,7 @@ void ath12k_dp_pdev_pre_alloc(struct ath12k *ar)
|
|||
|
||||
void ath12k_dp_hal_rx_desc_init(struct ath12k_base *ab)
|
||||
{
|
||||
ab->hal.hal_desc_sz = ab->hal_rx_ops->rx_desc_get_desc_size();
|
||||
ab->hal.hal_desc_sz = ab->hw_params->hal_ops->rx_desc_get_desc_size();
|
||||
}
|
||||
|
||||
int ath12k_dp_pdev_alloc(struct ath12k_base *ab)
|
||||
|
|
|
|||
|
|
@ -269,14 +269,14 @@ static inline void ath12k_dp_rx_desc_end_tlv_copy(struct ath12k_base *ab,
|
|||
struct hal_rx_desc *fdesc,
|
||||
struct hal_rx_desc *ldesc)
|
||||
{
|
||||
ab->hal_rx_ops->rx_desc_copy_end_tlv(fdesc, ldesc);
|
||||
ab->hw_params->hal_ops->rx_desc_copy_end_tlv(fdesc, ldesc);
|
||||
}
|
||||
|
||||
static inline void ath12k_dp_rxdesc_set_msdu_len(struct ath12k_base *ab,
|
||||
struct hal_rx_desc *desc,
|
||||
u16 len)
|
||||
{
|
||||
ab->hal_rx_ops->rx_desc_set_msdu_len(desc, len);
|
||||
ab->hw_params->hal_ops->rx_desc_set_msdu_len(desc, len);
|
||||
}
|
||||
|
||||
static inline u32 ath12k_dp_rxdesc_get_ppduid(struct ath12k_base *ab,
|
||||
|
|
@ -318,7 +318,7 @@ static inline void ath12k_dp_rx_desc_get_dot11_hdr(struct ath12k_base *ab,
|
|||
struct hal_rx_desc *desc,
|
||||
struct ieee80211_hdr *hdr)
|
||||
{
|
||||
ab->hal_rx_ops->rx_desc_get_dot11_hdr(desc, hdr);
|
||||
ab->hw_params->hal_ops->rx_desc_get_dot11_hdr(desc, hdr);
|
||||
}
|
||||
|
||||
static inline void ath12k_dp_rx_desc_get_crypto_header(struct ath12k_base *ab,
|
||||
|
|
@ -326,13 +326,13 @@ static inline void ath12k_dp_rx_desc_get_crypto_header(struct ath12k_base *ab,
|
|||
u8 *crypto_hdr,
|
||||
enum hal_encrypt_type enctype)
|
||||
{
|
||||
ab->hal_rx_ops->rx_desc_get_crypto_header(desc, crypto_hdr, enctype);
|
||||
ab->hw_params->hal_ops->rx_desc_get_crypto_header(desc, crypto_hdr, enctype);
|
||||
}
|
||||
|
||||
static inline u8 ath12k_dp_rx_get_msdu_src_link(struct ath12k_base *ab,
|
||||
struct hal_rx_desc *desc)
|
||||
{
|
||||
return ab->hal_rx_ops->rx_desc_get_msdu_src_link_id(desc);
|
||||
return ab->hw_params->hal_ops->rx_desc_get_msdu_src_link_id(desc);
|
||||
}
|
||||
|
||||
static inline void ath12k_dp_clean_up_skb_list(struct sk_buff_head *skb_list)
|
||||
|
|
|
|||
|
|
@ -428,29 +428,28 @@ const struct hal_rx_ops hal_rx_qcn9274_compact_ops = {
|
|||
.rx_desc_get_msdu_nss = ath12k_hal_rx_desc_get_msdu_nss_qcn9274,
|
||||
.rx_desc_get_mpdu_tid = ath12k_hal_rx_desc_get_mpdu_tid_qcn9274,
|
||||
.rx_desc_get_mpdu_peer_id = ath12k_hal_rx_desc_get_mpdu_peer_id_qcn9274,
|
||||
.rx_desc_copy_end_tlv = ath12k_hal_rx_desc_copy_end_tlv_qcn9274,
|
||||
.rx_desc_get_mpdu_ppdu_id = ath12k_hal_rx_desc_get_mpdu_ppdu_id_qcn9274,
|
||||
.rx_desc_set_msdu_len = ath12k_hal_rx_desc_set_msdu_len_qcn9274,
|
||||
.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_qcn9274,
|
||||
.rx_desc_mac_addr2_valid = ath12k_hal_rx_desc_mac_addr2_valid_qcn9274,
|
||||
.rx_desc_mpdu_start_addr2 = ath12k_hal_rx_desc_mpdu_start_addr2_qcn9274,
|
||||
.rx_desc_is_da_mcbc = ath12k_hal_rx_desc_is_da_mcbc_qcn9274,
|
||||
.rx_desc_get_dot11_hdr = ath12k_hal_rx_desc_get_dot11_hdr_qcn9274,
|
||||
.rx_desc_get_crypto_header = ath12k_hal_rx_desc_get_crypto_hdr_qcn9274,
|
||||
.dp_rx_h_msdu_done = ath12k_hal_rx_h_msdu_done_qcn9274,
|
||||
.dp_rx_h_l4_cksum_fail = ath12k_hal_rx_h_l4_cksum_fail_qcn9274,
|
||||
.dp_rx_h_ip_cksum_fail = ath12k_hal_rx_h_ip_cksum_fail_qcn9274,
|
||||
.dp_rx_h_is_decrypted = ath12k_hal_rx_h_is_decrypted_qcn9274,
|
||||
.dp_rx_h_mpdu_err = ath12k_hal_rx_h_mpdu_err_qcn9274,
|
||||
.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_qcn9274,
|
||||
.rx_desc_get_msdu_src_link_id =
|
||||
ath12k_hal_rx_desc_get_msdu_src_link_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,
|
||||
.rx_desc_set_msdu_len = ath12k_hal_rx_desc_set_msdu_len_qcn9274,
|
||||
.rx_desc_get_dot11_hdr = ath12k_hal_rx_desc_get_dot11_hdr_qcn9274,
|
||||
.rx_desc_get_crypto_header = ath12k_hal_rx_desc_get_crypto_hdr_qcn9274,
|
||||
.rx_desc_copy_end_tlv = ath12k_hal_rx_desc_copy_end_tlv_qcn9274,
|
||||
.rx_desc_get_msdu_src_link_id = ath12k_hal_rx_desc_get_msdu_src_link_qcn9274,
|
||||
.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_qcn9274,
|
||||
};
|
||||
EXPORT_SYMBOL(hal_qcn9274_ops);
|
||||
|
||||
|
|
@ -598,29 +597,29 @@ const struct hal_rx_ops hal_rx_wcn7850_ops = {
|
|||
.rx_desc_get_msdu_nss = ath12k_hal_rx_desc_get_msdu_nss_wcn7850,
|
||||
.rx_desc_get_mpdu_tid = ath12k_hal_rx_desc_get_mpdu_tid_wcn7850,
|
||||
.rx_desc_get_mpdu_peer_id = ath12k_hal_rx_desc_get_mpdu_peer_id_wcn7850,
|
||||
.rx_desc_copy_end_tlv = ath12k_hal_rx_desc_copy_end_tlv_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_set_msdu_len = ath12k_hal_rx_desc_set_msdu_len_wcn7850,
|
||||
.rx_desc_get_msdu_payload = ath12k_hal_rx_desc_get_msdu_payload_wcn7850,
|
||||
.rx_desc_mac_addr2_valid = ath12k_hal_rx_desc_mac_addr2_valid_wcn7850,
|
||||
.rx_desc_mpdu_start_addr2 = ath12k_hal_rx_desc_mpdu_start_addr2_wcn7850,
|
||||
.rx_desc_is_da_mcbc = ath12k_hal_rx_desc_is_da_mcbc_wcn7850,
|
||||
.rx_desc_get_dot11_hdr = ath12k_hal_rx_desc_get_dot11_hdr_wcn7850,
|
||||
.rx_desc_get_crypto_header = ath12k_hal_rx_desc_get_crypto_hdr_wcn7850,
|
||||
.dp_rx_h_msdu_done = ath12k_hal_rx_h_msdu_done_wcn7850,
|
||||
.dp_rx_h_l4_cksum_fail = ath12k_hal_rx_h_l4_cksum_fail_wcn7850,
|
||||
.dp_rx_h_ip_cksum_fail = ath12k_hal_rx_h_ip_cksum_fail_wcn7850,
|
||||
.dp_rx_h_is_decrypted = ath12k_hal_rx_h_is_decrypted_wcn7850,
|
||||
.dp_rx_h_mpdu_err = ath12k_hal_rx_h_mpdu_err_wcn7850,
|
||||
.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_wcn7850,
|
||||
.rx_desc_get_msdu_src_link_id = ath12k_hal_rx_desc_get_msdu_src_link_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,
|
||||
.rx_desc_set_msdu_len = ath12k_hal_rx_desc_set_msdu_len_wcn7850,
|
||||
.rx_desc_get_dot11_hdr = ath12k_hal_rx_desc_get_dot11_hdr_wcn7850,
|
||||
.rx_desc_get_crypto_header = ath12k_hal_rx_desc_get_crypto_hdr_wcn7850,
|
||||
.rx_desc_copy_end_tlv = ath12k_hal_rx_desc_copy_end_tlv_wcn7850,
|
||||
.rx_desc_get_msdu_src_link_id = ath12k_hal_rx_desc_get_msdu_src_link_wcn7850,
|
||||
.rx_desc_get_desc_size = ath12k_hal_get_rx_desc_size_wcn7850,
|
||||
};
|
||||
EXPORT_SYMBOL(hal_wcn7850_ops);
|
||||
|
||||
|
|
|
|||
|
|
@ -1569,33 +1569,33 @@ struct hal_rx_ops {
|
|||
u8 (*rx_desc_get_msdu_nss)(struct hal_rx_desc *desc);
|
||||
u8 (*rx_desc_get_mpdu_tid)(struct hal_rx_desc *desc);
|
||||
u16 (*rx_desc_get_mpdu_peer_id)(struct hal_rx_desc *desc);
|
||||
void (*rx_desc_copy_end_tlv)(struct hal_rx_desc *fdesc,
|
||||
struct hal_rx_desc *ldesc);
|
||||
u32 (*rx_desc_get_mpdu_start_tag)(struct hal_rx_desc *desc);
|
||||
u32 (*rx_desc_get_mpdu_ppdu_id)(struct hal_rx_desc *desc);
|
||||
void (*rx_desc_set_msdu_len)(struct hal_rx_desc *desc, u16 len);
|
||||
struct rx_attention *(*rx_desc_get_attention)(struct hal_rx_desc *desc);
|
||||
u8 *(*rx_desc_get_msdu_payload)(struct hal_rx_desc *desc);
|
||||
bool (*rx_desc_mac_addr2_valid)(struct hal_rx_desc *desc);
|
||||
u8* (*rx_desc_mpdu_start_addr2)(struct hal_rx_desc *desc);
|
||||
bool (*rx_desc_is_da_mcbc)(struct hal_rx_desc *desc);
|
||||
void (*rx_desc_get_dot11_hdr)(struct hal_rx_desc *desc,
|
||||
struct ieee80211_hdr *hdr);
|
||||
void (*rx_desc_get_crypto_header)(struct hal_rx_desc *desc,
|
||||
u8 *crypto_hdr,
|
||||
enum hal_encrypt_type enctype);
|
||||
bool (*dp_rx_h_msdu_done)(struct hal_rx_desc *desc);
|
||||
bool (*dp_rx_h_l4_cksum_fail)(struct hal_rx_desc *desc);
|
||||
bool (*dp_rx_h_ip_cksum_fail)(struct hal_rx_desc *desc);
|
||||
bool (*dp_rx_h_is_decrypted)(struct hal_rx_desc *desc);
|
||||
u32 (*dp_rx_h_mpdu_err)(struct hal_rx_desc *desc);
|
||||
u32 (*rx_desc_get_desc_size)(void);
|
||||
u8 (*rx_desc_get_msdu_src_link_id)(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;
|
||||
void (*rx_desc_set_msdu_len)(struct hal_rx_desc *desc, u16 len);
|
||||
void (*rx_desc_get_dot11_hdr)(struct hal_rx_desc *desc,
|
||||
struct ieee80211_hdr *hdr);
|
||||
void (*rx_desc_get_crypto_header)(struct hal_rx_desc *desc,
|
||||
u8 *crypto_hdr,
|
||||
enum hal_encrypt_type enctype);
|
||||
void (*rx_desc_copy_end_tlv)(struct hal_rx_desc *fdesc,
|
||||
struct hal_rx_desc *ldesc);
|
||||
u8 (*rx_desc_get_msdu_src_link_id)(struct hal_rx_desc *desc);
|
||||
u32 (*rx_desc_get_desc_size)(void);
|
||||
};
|
||||
|
||||
extern const struct hal_ops hal_qcn9274_ops;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user