qcacld-3.0: Add frag_header to support pre-wdi2.0 platform
wdi2.0 feature adds extra 2 bytes to frag_header and thus hdr_len to IPA HW also adds 2 bytes. This change breaks pre-wdi2.0 platform with WiFi FW discarding all TX traffic since packet payload is with an extra 2-byte offset. Fix is to add frag_header structure with pre-wdi2.0 pattern. Change-Id: I467a05bab4111a305ae23250c61cecc050821611 CRs-Fixed: 2047714
This commit is contained in:
parent
00e328c7e9
commit
80055eb33c
@ -179,11 +179,20 @@ struct wlan_ipa_tx_hdr {
|
||||
* @reserved1: Reserved not used
|
||||
* @reserved2: Reserved not used
|
||||
*/
|
||||
#if defined (QCA_WIFI_3_0) || defined (CONFIG_LITHIUM)
|
||||
struct frag_header {
|
||||
uint16_t length;
|
||||
uint32_t reserved1;
|
||||
uint32_t reserved2;
|
||||
} qdf_packed;
|
||||
#else
|
||||
struct frag_header {
|
||||
uint32_t
|
||||
length:16,
|
||||
reserved16:16;
|
||||
uint32_t reserved2;
|
||||
} qdf_packed;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct ipa_header - ipa header type registered to IPA hardware
|
||||
|
@ -77,6 +77,7 @@
|
||||
#include <ol_txrx_ipa.h>
|
||||
|
||||
/* For Tx pipes, use Ethernet-II Header format */
|
||||
#ifdef QCA_WIFI_3_0
|
||||
struct ol_txrx_ipa_uc_tx_hdr ipa_uc_tx_hdr = {
|
||||
{
|
||||
0x0000,
|
||||
@ -92,6 +93,22 @@ struct ol_txrx_ipa_uc_tx_hdr ipa_uc_tx_hdr = {
|
||||
0x0008
|
||||
}
|
||||
};
|
||||
#else
|
||||
struct ol_txrx_ipa_uc_tx_hdr ipa_uc_tx_hdr = {
|
||||
{
|
||||
0x00000000,
|
||||
0x00000000
|
||||
},
|
||||
{
|
||||
0x00000000
|
||||
},
|
||||
{
|
||||
{0x00, 0x03, 0x7f, 0xaa, 0xbb, 0xcc},
|
||||
{0x00, 0x03, 0x7f, 0xdd, 0xee, 0xff},
|
||||
0x0008
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* ol_txrx_ipa_uc_get_resource() - Client request resource information
|
||||
|
@ -29,11 +29,20 @@
|
||||
* @reserved2: Reserved not used
|
||||
*
|
||||
*/
|
||||
#ifdef QCA_WIFI_3_0
|
||||
struct frag_header {
|
||||
uint16_t length;
|
||||
uint32_t reserved1;
|
||||
uint32_t reserved2;
|
||||
} __packed;
|
||||
#else
|
||||
struct frag_header {
|
||||
uint32_t
|
||||
length:16,
|
||||
reserved16:16;
|
||||
uint32_t reserved2;
|
||||
} __packed;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct ipa_header - ipa header type registered to IPA hardware
|
||||
|
Loading…
Reference in New Issue
Block a user