OSDN Git Service

ath10k: Modify htt rx descriptor for WCN3990 target
authorGovind Singh <govinds@codeaurora.org>
Thu, 5 Jan 2017 07:19:57 +0000 (12:49 +0530)
committerGerrit - the friendly Code Review server <code-review@localhost>
Thu, 26 Jan 2017 04:43:32 +0000 (20:43 -0800)
WCN3990 target uses more fields in htt rx descriptor,
hence modify htt rx descriptor for WCN3990 target.

CRs-Fixed: 1114748
Change-Id: Iaf3f7bde2a1cfd9e6862c308e5c65447d4293323
Signed-off-by: Govind Singh <govinds@codeaurora.org>
drivers/net/wireless/ath/ath10k/rx_desc.h

index 034e7a5..6260f11 100644 (file)
@@ -205,12 +205,25 @@ struct rx_attention {
  *             descriptor.
  */
 
+#ifndef CONFIG_ATH10K_SNOC
 struct rx_frag_info {
        u8 ring0_more_count;
        u8 ring1_more_count;
        u8 ring2_more_count;
        u8 ring3_more_count;
 } __packed;
+#else
+struct rx_frag_info {
+       u8 ring0_more_count;
+       u8 ring1_more_count;
+       u8 ring2_more_count;
+       u8 ring3_more_count;
+       u8 ring4_more_count;
+       u8 ring5_more_count;
+       u8 ring6_more_count;
+       u8 ring7_more_count;
+} __packed;
+#endif
 
 /*
  * ring0_more_count
@@ -465,11 +478,23 @@ struct rx_msdu_start_qca99x0 {
        __le32 info2; /* %RX_MSDU_START_INFO2_ */
 } __packed;
 
+#ifdef CONFIG_ATH10K_SNOC
+struct rx_msdu_start_wcn3990 {
+       __le32 info3;
+} __packed;
+#else
+struct rx_msdu_start_wcn3990 {
+} __packed;
+#endif
+
 struct rx_msdu_start {
        struct rx_msdu_start_common common;
        union {
                struct rx_msdu_start_qca99x0 qca99x0;
        } __packed;
+       union {
+               struct rx_msdu_start_wcn3990 wcn3990;
+       } __packed;
 } __packed;
 
 /*
@@ -589,10 +614,18 @@ struct rx_msdu_end_qca99x0 {
        __le32 info2;
 } __packed;
 
+struct rx_msdu_end_wcn3990 {
+       __le32 rule_indication_0;
+       __le32 rule_indication_1;
+       __le32 rule_indication_2;
+       __le32 rule_indication_3;
+} __packed;
+
 struct rx_msdu_end {
        struct rx_msdu_end_common common;
        union {
                struct rx_msdu_end_qca99x0 qca99x0;
+               struct rx_msdu_end_wcn3990 wcn3990;
        } __packed;
 } __packed;
 
@@ -953,8 +986,13 @@ struct rx_ppdu_end_qca6174 {
 
 struct rx_pkt_end {
        __le32 info0; /* %RX_PKT_END_INFO0_ */
+#ifndef CONFIG_ATH10K_SNOC
        __le32 phy_timestamp_1;
        __le32 phy_timestamp_2;
+#else
+       __le64 phy_timestamp_1;
+       __le64 phy_timestamp_2;
+#endif
 } __packed;
 
 #define RX_LOCATION_INFO0_RTT_FAC_LEGACY_MASK          0x00003fff
@@ -990,6 +1028,9 @@ struct rx_pkt_end {
 struct rx_location_info {
        __le32 rx_location_info0; /* %RX_LOCATION_INFO0_ */
        __le32 rx_location_info1; /* %RX_LOCATION_INFO1_ */
+#ifdef CONFIG_ATH10K_SNOC
+       __le32 rx_location_info2; /* %RX_LOCATION_INFO2_ */
+#endif
 } __packed;
 
 enum rx_phy_ppdu_end_info0 {
@@ -1080,6 +1121,25 @@ struct rx_ppdu_end_qca9984 {
        __le16 info1; /* %RX_PPDU_END_INFO1_ */
 } __packed;
 
+struct rx_timing_offset {
+       __le32 timing_offset;
+       __le32 reserved;
+};
+
+struct rx_ppdu_end_wcn3990 {
+       __le32 reserved_info_0;
+       __le32 reserved_info_1;
+       __le32 rx_antenna_info;
+       __le32 rx_coex_info;
+       __le32 rx_mpdu_cnt_info;
+       __le32 rx_bb_length;
+       __le64 phy_timestamp_tx;
+       struct rx_pkt_end rx_pkt_end;
+       struct rx_phy_ppdu_end rx_phy_ppdu_end;
+       struct rx_timing_offset rx_timing_offset;
+       struct rx_location_info rx_location_info;
+} __packed;
+
 struct rx_ppdu_end {
        struct rx_ppdu_end_common common;
        union {
@@ -1087,6 +1147,7 @@ struct rx_ppdu_end {
                struct rx_ppdu_end_qca6174 qca6174;
                struct rx_ppdu_end_qca99x0 qca99x0;
                struct rx_ppdu_end_qca9984 qca9984;
+               struct rx_ppdu_end_wcn3990 wcn3990;
        } __packed;
 } __packed;