Commit 5e76fe03 authored by P Praneesh's avatar P Praneesh Committed by Kalle Valo

ath11k: modify dp_rx desc access wrapper calls inline

In data path, to reduce the CPU cycles spending on descriptor access
wrapper function, changed those functions as static inline.

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1.r2-00012-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01695-QCAHKSWPL_SILICONZ-1
Co-developed-by: default avatarSriram R <srirrama@codeaurora.org>
Signed-off-by: default avatarSriram R <srirrama@codeaurora.org>
Signed-off-by: default avatarJouni Malinen <jouni@codeaurora.org>
Signed-off-by: default avatarP Praneesh <ppranees@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1630560820-21905-4-git-send-email-ppranees@codeaurora.org
parent 6452f0a3
...@@ -20,12 +20,14 @@ ...@@ -20,12 +20,14 @@
#define ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS (2 * HZ) #define ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS (2 * HZ)
static u8 *ath11k_dp_rx_h_80211_hdr(struct ath11k_base *ab, struct hal_rx_desc *desc) static inline
u8 *ath11k_dp_rx_h_80211_hdr(struct ath11k_base *ab, struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_hdr_status(desc); return ab->hw_params.hw_ops->rx_desc_get_hdr_status(desc);
} }
static enum hal_encrypt_type ath11k_dp_rx_h_mpdu_start_enctype(struct ath11k_base *ab, static inline
enum hal_encrypt_type ath11k_dp_rx_h_mpdu_start_enctype(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
if (!ab->hw_params.hw_ops->rx_desc_encrypt_valid(desc)) if (!ab->hw_params.hw_ops->rx_desc_encrypt_valid(desc))
...@@ -34,31 +36,33 @@ static enum hal_encrypt_type ath11k_dp_rx_h_mpdu_start_enctype(struct ath11k_bas ...@@ -34,31 +36,33 @@ static enum hal_encrypt_type ath11k_dp_rx_h_mpdu_start_enctype(struct ath11k_bas
return ab->hw_params.hw_ops->rx_desc_get_encrypt_type(desc); return ab->hw_params.hw_ops->rx_desc_get_encrypt_type(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_decap_type(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_decap_type(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_decap_type(desc); return ab->hw_params.hw_ops->rx_desc_get_decap_type(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_mesh_ctl_present(struct ath11k_base *ab, static inline
u8 ath11k_dp_rx_h_msdu_start_mesh_ctl_present(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mesh_ctl(desc); return ab->hw_params.hw_ops->rx_desc_get_mesh_ctl(desc);
} }
static bool ath11k_dp_rx_h_mpdu_start_seq_ctrl_valid(struct ath11k_base *ab, static inline
bool ath11k_dp_rx_h_mpdu_start_seq_ctrl_valid(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_seq_ctl_vld(desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_seq_ctl_vld(desc);
} }
static bool ath11k_dp_rx_h_mpdu_start_fc_valid(struct ath11k_base *ab, static inline bool ath11k_dp_rx_h_mpdu_start_fc_valid(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_fc_valid(desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_fc_valid(desc);
} }
static bool ath11k_dp_rx_h_mpdu_start_more_frags(struct ath11k_base *ab, static inline bool ath11k_dp_rx_h_mpdu_start_more_frags(struct ath11k_base *ab,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct ieee80211_hdr *hdr; struct ieee80211_hdr *hdr;
...@@ -67,7 +71,7 @@ static bool ath11k_dp_rx_h_mpdu_start_more_frags(struct ath11k_base *ab, ...@@ -67,7 +71,7 @@ static bool ath11k_dp_rx_h_mpdu_start_more_frags(struct ath11k_base *ab,
return ieee80211_has_morefrags(hdr->frame_control); return ieee80211_has_morefrags(hdr->frame_control);
} }
static u16 ath11k_dp_rx_h_mpdu_start_frag_no(struct ath11k_base *ab, static inline u16 ath11k_dp_rx_h_mpdu_start_frag_no(struct ath11k_base *ab,
struct sk_buff *skb) struct sk_buff *skb)
{ {
struct ieee80211_hdr *hdr; struct ieee80211_hdr *hdr;
...@@ -76,37 +80,37 @@ static u16 ath11k_dp_rx_h_mpdu_start_frag_no(struct ath11k_base *ab, ...@@ -76,37 +80,37 @@ static u16 ath11k_dp_rx_h_mpdu_start_frag_no(struct ath11k_base *ab,
return le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG; return le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG;
} }
static u16 ath11k_dp_rx_h_mpdu_start_seq_no(struct ath11k_base *ab, static inline u16 ath11k_dp_rx_h_mpdu_start_seq_no(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_start_seq_no(desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_start_seq_no(desc);
} }
static void *ath11k_dp_rx_get_attention(struct ath11k_base *ab, static inline void *ath11k_dp_rx_get_attention(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_attention(desc); return ab->hw_params.hw_ops->rx_desc_get_attention(desc);
} }
static bool ath11k_dp_rx_h_attn_msdu_done(struct rx_attention *attn) static inline bool ath11k_dp_rx_h_attn_msdu_done(struct rx_attention *attn)
{ {
return !!FIELD_GET(RX_ATTENTION_INFO2_MSDU_DONE, return !!FIELD_GET(RX_ATTENTION_INFO2_MSDU_DONE,
__le32_to_cpu(attn->info2)); __le32_to_cpu(attn->info2));
} }
static bool ath11k_dp_rx_h_attn_l4_cksum_fail(struct rx_attention *attn) static inline bool ath11k_dp_rx_h_attn_l4_cksum_fail(struct rx_attention *attn)
{ {
return !!FIELD_GET(RX_ATTENTION_INFO1_TCP_UDP_CKSUM_FAIL, return !!FIELD_GET(RX_ATTENTION_INFO1_TCP_UDP_CKSUM_FAIL,
__le32_to_cpu(attn->info1)); __le32_to_cpu(attn->info1));
} }
static bool ath11k_dp_rx_h_attn_ip_cksum_fail(struct rx_attention *attn) static inline bool ath11k_dp_rx_h_attn_ip_cksum_fail(struct rx_attention *attn)
{ {
return !!FIELD_GET(RX_ATTENTION_INFO1_IP_CKSUM_FAIL, return !!FIELD_GET(RX_ATTENTION_INFO1_IP_CKSUM_FAIL,
__le32_to_cpu(attn->info1)); __le32_to_cpu(attn->info1));
} }
static bool ath11k_dp_rx_h_attn_is_decrypted(struct rx_attention *attn) static inline bool ath11k_dp_rx_h_attn_is_decrypted(struct rx_attention *attn)
{ {
return (FIELD_GET(RX_ATTENTION_INFO2_DCRYPT_STATUS_CODE, return (FIELD_GET(RX_ATTENTION_INFO2_DCRYPT_STATUS_CODE,
__le32_to_cpu(attn->info2)) == __le32_to_cpu(attn->info2)) ==
...@@ -154,67 +158,67 @@ static bool ath11k_dp_rx_h_attn_msdu_len_err(struct ath11k_base *ab, ...@@ -154,67 +158,67 @@ static bool ath11k_dp_rx_h_attn_msdu_len_err(struct ath11k_base *ab,
return errmap & DP_RX_MPDU_ERR_MSDU_LEN; return errmap & DP_RX_MPDU_ERR_MSDU_LEN;
} }
static u16 ath11k_dp_rx_h_msdu_start_msdu_len(struct ath11k_base *ab, static inline u16 ath11k_dp_rx_h_msdu_start_msdu_len(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_len(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_len(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_sgi(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_sgi(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_sgi(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_sgi(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_rate_mcs(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_rate_mcs(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_rate_mcs(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_rate_mcs(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_rx_bw(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_rx_bw(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_rx_bw(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_rx_bw(desc);
} }
static u32 ath11k_dp_rx_h_msdu_start_freq(struct ath11k_base *ab, static inline u32 ath11k_dp_rx_h_msdu_start_freq(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_freq(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_freq(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_pkt_type(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_pkt_type(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_msdu_pkt_type(desc); return ab->hw_params.hw_ops->rx_desc_get_msdu_pkt_type(desc);
} }
static u8 ath11k_dp_rx_h_msdu_start_nss(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_start_nss(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return hweight8(ab->hw_params.hw_ops->rx_desc_get_msdu_nss(desc)); return hweight8(ab->hw_params.hw_ops->rx_desc_get_msdu_nss(desc));
} }
static u8 ath11k_dp_rx_h_mpdu_start_tid(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_mpdu_start_tid(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_tid(desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_tid(desc);
} }
static u16 ath11k_dp_rx_h_mpdu_start_peer_id(struct ath11k_base *ab, static inline u16 ath11k_dp_rx_h_mpdu_start_peer_id(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_peer_id(desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_peer_id(desc);
} }
static u8 ath11k_dp_rx_h_msdu_end_l3pad(struct ath11k_base *ab, static inline u8 ath11k_dp_rx_h_msdu_end_l3pad(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_l3_pad_bytes(desc); return ab->hw_params.hw_ops->rx_desc_get_l3_pad_bytes(desc);
} }
static bool ath11k_dp_rx_h_msdu_end_first_msdu(struct ath11k_base *ab, static inline bool ath11k_dp_rx_h_msdu_end_first_msdu(struct ath11k_base *ab,
struct hal_rx_desc *desc) struct hal_rx_desc *desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_first_msdu(desc); return ab->hw_params.hw_ops->rx_desc_get_first_msdu(desc);
...@@ -233,13 +237,13 @@ static void ath11k_dp_rx_desc_end_tlv_copy(struct ath11k_base *ab, ...@@ -233,13 +237,13 @@ static void ath11k_dp_rx_desc_end_tlv_copy(struct ath11k_base *ab,
ab->hw_params.hw_ops->rx_desc_copy_attn_end_tlv(fdesc, ldesc); ab->hw_params.hw_ops->rx_desc_copy_attn_end_tlv(fdesc, ldesc);
} }
static u32 ath11k_dp_rxdesc_get_mpdulen_err(struct rx_attention *attn) static inline u32 ath11k_dp_rxdesc_get_mpdulen_err(struct rx_attention *attn)
{ {
return FIELD_GET(RX_ATTENTION_INFO1_MPDU_LEN_ERR, return FIELD_GET(RX_ATTENTION_INFO1_MPDU_LEN_ERR,
__le32_to_cpu(attn->info1)); __le32_to_cpu(attn->info1));
} }
static u8 *ath11k_dp_rxdesc_get_80211hdr(struct ath11k_base *ab, static inline u8 *ath11k_dp_rxdesc_get_80211hdr(struct ath11k_base *ab,
struct hal_rx_desc *rx_desc) struct hal_rx_desc *rx_desc)
{ {
u8 *rx_pkt_hdr; u8 *rx_pkt_hdr;
...@@ -249,7 +253,7 @@ static u8 *ath11k_dp_rxdesc_get_80211hdr(struct ath11k_base *ab, ...@@ -249,7 +253,7 @@ static u8 *ath11k_dp_rxdesc_get_80211hdr(struct ath11k_base *ab,
return rx_pkt_hdr; return rx_pkt_hdr;
} }
static bool ath11k_dp_rxdesc_mpdu_valid(struct ath11k_base *ab, static inline bool ath11k_dp_rxdesc_mpdu_valid(struct ath11k_base *ab,
struct hal_rx_desc *rx_desc) struct hal_rx_desc *rx_desc)
{ {
u32 tlv_tag; u32 tlv_tag;
...@@ -259,13 +263,13 @@ static bool ath11k_dp_rxdesc_mpdu_valid(struct ath11k_base *ab, ...@@ -259,13 +263,13 @@ static bool ath11k_dp_rxdesc_mpdu_valid(struct ath11k_base *ab,
return tlv_tag == HAL_RX_MPDU_START; return tlv_tag == HAL_RX_MPDU_START;
} }
static u32 ath11k_dp_rxdesc_get_ppduid(struct ath11k_base *ab, static inline u32 ath11k_dp_rxdesc_get_ppduid(struct ath11k_base *ab,
struct hal_rx_desc *rx_desc) struct hal_rx_desc *rx_desc)
{ {
return ab->hw_params.hw_ops->rx_desc_get_mpdu_ppdu_id(rx_desc); return ab->hw_params.hw_ops->rx_desc_get_mpdu_ppdu_id(rx_desc);
} }
static void ath11k_dp_rxdesc_set_msdu_len(struct ath11k_base *ab, static inline void ath11k_dp_rxdesc_set_msdu_len(struct ath11k_base *ab,
struct hal_rx_desc *desc, struct hal_rx_desc *desc,
u16 len) u16 len)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment