mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
qcacld-3.0: Fix WDI 3.0 ethernet header offset
Upon client connection to SAP, WLAN IPA will pass a message containing client MAC address and ethernet header offset to IPA driver. Per WDI 3.0, there's no frag_header and ipa_header prepended in front of ethernet header. Thus ethernet header length is passed to IPA driver as header length during interface registration. But in per-client message, offset passed to IPA driver still accounts for length of frag_header and ipa_header. As a result packet queued to event ring will have wrong ethernet header. And this causes IPA to WLAN TX HW path not work as expected. Fix is to define frag_header and ipa_header as 0 sized structure for WDI 3.0 so that ethernet header offset will be 0. Change-Id: I58cdf78732ad2909bf89058f2a5bc24c42f841d2 CRs-Fixed: 2421315
This commit is contained in:
parent
1002fc0ea6
commit
42cc9fd76b
1 changed files with 12 additions and 3 deletions
|
|
@ -170,9 +170,11 @@ struct wlan_ipa_tx_hdr {
|
|||
* @reserved1: Reserved not used
|
||||
* @reserved2: Reserved not used
|
||||
*/
|
||||
#if defined(QCA_WIFI_3_0) || \
|
||||
defined(QCA_WIFI_QCA6290) || \
|
||||
defined(QCA_WIFI_QCA6390)
|
||||
#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
|
||||
struct frag_header {
|
||||
uint8_t reserved[0];
|
||||
};
|
||||
#elif defined(QCA_WIFI_3_0)
|
||||
struct frag_header {
|
||||
uint16_t length;
|
||||
uint32_t reserved1;
|
||||
|
|
@ -192,11 +194,18 @@ struct frag_header {
|
|||
* @vdev_id: vdev id
|
||||
* @reserved: Reserved not used
|
||||
*/
|
||||
|
||||
#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390)
|
||||
struct ipa_header {
|
||||
uint8_t reserved[0];
|
||||
};
|
||||
#else
|
||||
struct ipa_header {
|
||||
uint32_t
|
||||
vdev_id:8, /* vdev_id field is LSB of IPA DESC */
|
||||
reserved:24;
|
||||
} qdf_packed;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct wlan_ipa_uc_tx_hdr - full tx header registered to IPA hardware
|
||||
|
|
|
|||
Loading…
Reference in a new issue