From: Kalle Valo <kvalo@kernel.org>
To: Jeff Johnson <quic_jjohnson@quicinc.com>
Cc: <ath12k@lists.infradead.org>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH 1/1] wifi: ath12k: add msdu_end structure for WCN7850
Date: Wed, 23 Aug 2023 21:10:36 +0300 [thread overview]
Message-ID: <87jztlhboj.fsf@kernel.org> (raw)
In-Reply-To: <18b72ba8-7f0c-ed88-38f7-7422a179519f@quicinc.com> (Jeff Johnson's message of "Tue, 15 Aug 2023 15:28:47 -0700")
Jeff Johnson <quic_jjohnson@quicinc.com> writes:
> On 8/14/2023 11:26 PM, Kang Yang wrote:
>> WCN7850 and QCN9274 use the same structure rx_msdu_end_qcn9274 for
>
> Suggest s/use/currently use/ to clarify this is the current behavior
> and not the expected behavior
>
>> msdu_end. But content of msdu_end on WCN7850 is different from that of
>> QCN9274. Need to update it for WCN7850, otherwise will get the wrong
>> values when using it.
>> For example, TID is no longer in WCN7850's msdu_end. But
>> ath12k_dp_rx_process_err and ath12k_dp_rx_process_wbm_err still get TID
>
> Please add () to function references
>
>> from msdu_end. So an uncertain value will be used in these two functions
>> on WCN7850.
>> Therefore, add new structure rx_msdu_end_wcn7850 for WCN7850.
>> Tested-on: WCN7850 hw2.0 PCI
>> WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
>> Signed-off-by: Kang Yang <quic_kangyang@quicinc.com>
>> ---
>> drivers/net/wireless/ath/ath12k/hal.c | 6 +--
>> drivers/net/wireless/ath/ath12k/rx_desc.h | 53 ++++++++++++++++++++++-
>> 2 files changed, 55 insertions(+), 4 deletions(-)
>> diff --git a/drivers/net/wireless/ath/ath12k/hal.c
>> b/drivers/net/wireless/ath/ath12k/hal.c
>> index e7a150e7158e..19b4207ca048 100644
>> --- a/drivers/net/wireless/ath/ath12k/hal.c
>> +++ b/drivers/net/wireless/ath/ath12k/hal.c
>> @@ -824,8 +824,8 @@ static u8 ath12k_hw_wcn7850_rx_desc_get_msdu_nss(struct hal_rx_desc *desc)
>> static u8 ath12k_hw_wcn7850_rx_desc_get_mpdu_tid(struct
>> hal_rx_desc *desc)
>> {
>> - return le16_get_bits(desc->u.wcn7850.msdu_end.info5,
>> - RX_MSDU_END_INFO5_TID);
>> + return le32_get_bits(desc->u.wcn7850.mpdu_start.info2,
>> + RX_MPDU_START_INFO2_TID);
>> }
>> static u16 ath12k_hw_wcn7850_rx_desc_get_mpdu_peer_id(struct
>> hal_rx_desc *desc)
>> @@ -837,7 +837,7 @@ static void ath12k_hw_wcn7850_rx_desc_copy_end_tlv(struct hal_rx_desc *fdesc,
>> struct hal_rx_desc *ldesc)
>> {
>> memcpy(&fdesc->u.wcn7850.msdu_end, &ldesc->u.wcn7850.msdu_end,
>> - sizeof(struct rx_msdu_end_qcn9274));
>> + sizeof(struct rx_msdu_end_wcn7850));
>> }
>> static u32 ath12k_hw_wcn7850_rx_desc_get_mpdu_start_tag(struct
>> hal_rx_desc *desc)
>> diff --git a/drivers/net/wireless/ath/ath12k/rx_desc.h b/drivers/net/wireless/ath/ath12k/rx_desc.h
>> index f99556a253e5..8769d8f3e7ea 100644
>> --- a/drivers/net/wireless/ath/ath12k/rx_desc.h
>> +++ b/drivers/net/wireless/ath/ath12k/rx_desc.h
>> @@ -782,6 +782,57 @@ struct rx_msdu_end_qcn9274 {
>> __le32 info14;
>> } __packed;
>> +struct rx_msdu_end_wcn7850 {
>> + __le16 info0;
>> + __le16 phy_ppdu_id;
>> + __le16 ip_hdr_cksum;
>> + __le16 info1;
>> + __le16 info2;
>> + __le16 cumulative_l3_checksum;
>> + __le32 rule_indication0;
>> + __le32 rule_indication1;
>> + __le16 info3;
>> + __le16 l3_type;
>> + __le32 ipv6_options_crc;
>> + __le32 tcp_seq_num;
>> + __le32 tcp_ack_num;
>> + __le16 info4;
>> + __le16 window_size;
>> + __le16 tcp_udp_chksum;
>> + __le16 info5;
>> + __le16 sa_idx;
>> + __le16 da_idx_or_sw_peer_id;
>> + __le32 info6;
>> + __le32 fse_metadata;
>> + __le16 cce_metadata;
>> + __le16 sa_sw_peer_id;
>> + __le16 info7;
>> + __le16 rsvd0;
>> + __le16 cumulative_l4_checksum;
>> + __le16 cumulative_ip_length;
>> + __le32 info9;
>> + __le32 info10;
>> + __le32 info11;
>> + __le32 toeplitz_hash_2_or_4;
>> + __le32 flow_id_toeplitz;
>> + __le32 info12;
>> + __le32 ppdu_start_timestamp_31_0;
>> + __le32 ppdu_start_timestamp_63_32;
>> + __le32 phy_meta_data;
>> + __le16 vlan_ctag_ci;
>> + __le16 vlan_stag_ci;
>> + __le32 rsvd[3];
>> + __le32 info13;
>> + __le32 info14;
>> +} __packed;
>> +
>> +/* These macro definitions are only used for WCN7850 */
>> +#define RX_MSDU_END_INFO5_MSDU_LIMIT_ERR BIT(2)
>> +#define RX_MSDU_END_INFO5_IDX_TIMOUT BIT(3)
>> +#define RX_MSDU_END_INFO5_IDX_INVLID BIT(4)
>> +#define RX_MSDU_END_INFO5_WIFI_PARSE_ERR BIT(5)
>> +#define RX_MSDU_END_INFO5_AMSDU_PARSER_ERR BIT(6)
>> +
>
> What uses these macros?
> Is there a reason to not spell out TIMEOUT and INVALID?
>
> If there are two different structs with two different decodings for
> info5 then it seems strange to have macros which don't have the
> chipset in the macro name. So I'd expect these to be named
> RX_MSDU_END_WCN7850_INFO5_* and the QCN9274 ones to be named
> RX_MSDU_END_QCN9274_INFO5_*. Only if there are members that are
> identical between WCN7850 and QCN9274 would it make sense to not have
> a chipset-specific name.
>
>> /* rx_msdu_end
>> *
>> * rxpcu_mpdu_filter_in_category
>> @@ -1410,7 +1461,7 @@ struct rx_pkt_hdr_tlv {
>> struct hal_rx_desc_wcn7850 {
>> __le64 msdu_end_tag;
>> - struct rx_msdu_end_qcn9274 msdu_end;
>> + struct rx_msdu_end_wcn7850 msdu_end;
>> u8 rx_padding0[RX_BE_PADDING0_BYTES];
>> __le64 mpdu_start_tag;
>> struct rx_mpdu_start_qcn9274 mpdu_start;
Jeff, for some reason your mail didn't have Cc linux-wireless so
patchwork don't show your comments:
https://patchwork.kernel.org/project/linux-wireless/patch/20230815062610.59248-1-quic_kangyang@quicinc.com/
The problem is that if there are no comments in patchwork I will most
likely miss them. Adding linux-wireless back now.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
--
ath12k mailing list
ath12k@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/ath12k
next prev parent reply other threads:[~2023-08-23 18:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-15 6:26 [PATCH 1/1] wifi: ath12k: add msdu_end structure for WCN7850 Kang Yang
2023-08-15 22:28 ` Jeff Johnson
2023-08-23 18:10 ` Kalle Valo [this message]
2023-08-23 19:28 ` Jeff Johnson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jztlhboj.fsf@kernel.org \
--to=kvalo@kernel.org \
--cc=ath12k@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=quic_jjohnson@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox