|
@@ -196,13 +196,90 @@ struct CE_state {
|
|
|
#ifdef QCA_WIFI_3_0
|
|
|
#define HIF_CE_DESC_ADDR_TO_DMA(desc) \
|
|
|
(qdf_dma_addr_t)(((uint64_t)(desc)->buffer_addr + \
|
|
|
- ((uint64_t)((desc)->buffer_addr_hi & 0x1F) << 32)))
|
|
|
+ ((uint64_t)((desc)->buffer_addr_hi & CE_RING_BASE_ADDR_HIGH_MASK) << \
|
|
|
+ 32)))
|
|
|
#else
|
|
|
#define HIF_CE_DESC_ADDR_TO_DMA(desc) \
|
|
|
(qdf_dma_addr_t)((desc)->buffer_addr)
|
|
|
#endif
|
|
|
|
|
|
-#ifdef QCA_WIFI_3_0
|
|
|
+#if defined(QCA_WIFI_WCN6450)
|
|
|
+struct CE_src_desc {
|
|
|
+ uint32_t buffer_addr:32;
|
|
|
+#if _BYTE_ORDER == _BIG_ENDIAN
|
|
|
+ uint32_t gather:1,
|
|
|
+ packet_result_offset:12,
|
|
|
+ toeplitz_hash_enable:1, /* reserved */
|
|
|
+ addr_x_search_disable:1, /* reserved */
|
|
|
+ addr_y_search_disable:1, /* reserved */
|
|
|
+ misc_int_disable:1,
|
|
|
+ target_int_disable:1,
|
|
|
+ host_int_disable:1,
|
|
|
+ dest_byte_swap:1,
|
|
|
+ byte_swap:1,
|
|
|
+ type:2, /* reserved */
|
|
|
+ tx_classify:1,
|
|
|
+ buffer_addr_hi:8;
|
|
|
+ uint32_t meta_data:16,
|
|
|
+ nbytes:16;
|
|
|
+#else
|
|
|
+ uint32_t buffer_addr_hi:8,
|
|
|
+ tx_classify:1,
|
|
|
+ type:2, /* reserved */
|
|
|
+ byte_swap:1, /* src_byte_swap */
|
|
|
+ dest_byte_swap:1,
|
|
|
+ host_int_disable:1,
|
|
|
+ target_int_disable:1,
|
|
|
+ misc_int_disable:1,
|
|
|
+ addr_y_search_disable:1, /* reserved */
|
|
|
+ addr_x_search_disable:1, /* reserved */
|
|
|
+ toeplitz_hash_enable:1, /* reserved */
|
|
|
+ packet_result_offset:12,
|
|
|
+ gather:1;
|
|
|
+ uint32_t nbytes:16,
|
|
|
+ meta_data:16;
|
|
|
+#endif
|
|
|
+ uint32_t toeplitz_hash_result:32;
|
|
|
+};
|
|
|
+
|
|
|
+struct CE_dest_desc {
|
|
|
+ uint32_t buffer_addr:32;
|
|
|
+#if _BYTE_ORDER == _BIG_ENDIAN
|
|
|
+ uint32_t gather:1,
|
|
|
+ packet_result_offset:12,
|
|
|
+ toeplitz_hash_enable:1, /* reserved */
|
|
|
+ addr_x_search_disable:1, /* reserved */
|
|
|
+ addr_y_search_disable:1, /* reserved */
|
|
|
+ misc_int_disable:1,
|
|
|
+ target_int_disable:1,
|
|
|
+ host_int_disable:1,
|
|
|
+ byte_swap:1, /* dest_byte_swap */
|
|
|
+ src_byte_swap:1,
|
|
|
+ type:2, /* reserved */
|
|
|
+ tx_classify:1,
|
|
|
+ buffer_addr_hi:8;
|
|
|
+ uint32_t meta_data:16,
|
|
|
+ nbytes:16;
|
|
|
+#else
|
|
|
+ uint32_t buffer_addr_hi:8,
|
|
|
+ tx_classify:1,
|
|
|
+ type:2, /* reserved */
|
|
|
+ src_byte_swap:1,
|
|
|
+ byte_swap:1, /* dest_byte_swap */
|
|
|
+ host_int_disable:1,
|
|
|
+ target_int_disable:1,
|
|
|
+ misc_int_disable:1,
|
|
|
+ addr_y_search_disable:1, /* reserved */
|
|
|
+ addr_x_search_disable:1, /* reserved */
|
|
|
+ toeplitz_hash_enable:1, /* reserved */
|
|
|
+ packet_result_offset:12,
|
|
|
+ gather:1;
|
|
|
+ uint32_t nbytes:16,
|
|
|
+ meta_data:16;
|
|
|
+#endif
|
|
|
+ uint32_t toeplitz_hash_result:32;
|
|
|
+};
|
|
|
+#elif defined(QCA_WIFI_3_0)
|
|
|
struct CE_src_desc {
|
|
|
uint32_t buffer_addr:32;
|
|
|
#if _BYTE_ORDER == _BIG_ENDIAN
|
|
@@ -325,7 +402,7 @@ struct CE_dest_desc {
|
|
|
meta_data:12;
|
|
|
#endif
|
|
|
};
|
|
|
-#endif /* QCA_WIFI_3_0 */
|
|
|
+#endif /* QCA_WIFI_WCN6450 */
|
|
|
|
|
|
struct ce_srng_src_desc {
|
|
|
uint32_t buffer_addr_lo;
|