qcacld-3.0: Add workaround for TXDMA HW limitation
Per HW team's analysis, we find a TXDMA HW limitation: ADDR0&0x1FFFFFFF8 should not equal ADDR1&0x1FFFFFFF8. Otherwise, TXDMA will run into exception, which cause TX fail. ADDR0: the address of last words in previous buffer; ADDR1: the address of first words in next buffer; We hit this limitation in NAT forward TSO jumbo case whose buffer address of two fragments like below: tso_frags = ( (length = 0x42, vaddr = 0xFFFFFFD0F5FA2F82, paddr = 0x1F5FA2F82), (length = 0x05A8, vaddr = 0xFFFFFFD0F5FA2FC4, paddr = 0x1F5FA2FC4) In this case, ADDR0 = 0x1F5FA2F82 + 0x42 -2 = 0x1F5FA2FC2, ADDR1 = 0x1F5FA2FC4, then ADDR0&0x1FFFFFFF8 = ADDR1&0x1FFFFFFF8. To avoid this, shift server bytes for ADDR0. Change-Id: If9334a6861a03432eb70356df41a11ad971159e3 CRs-Fixed: 2641066
This commit is contained in:

committad av
nshrivas

förälder
547733e56a
incheckning
ddb8d72760
1
Kbuild
1
Kbuild
@@ -2921,6 +2921,7 @@ cppflags-$(CONFIG_WLAN_FEATURE_11AX) += -DSUPPORT_11AX_D3
|
||||
cppflags-$(CONFIG_RXDMA_ERR_PKT_DROP) += -DRXDMA_ERR_PKT_DROP
|
||||
cppflags-$(CONFIG_MAX_ALLOC_PAGE_SIZE) += -DMAX_ALLOC_PAGE_SIZE
|
||||
|
||||
cppflags-$(CONFIG_LITHIUM) += -DWAR_TXDMA_LIMITATION
|
||||
cppflags-$(CONFIG_LITHIUM) += -DFEATURE_AST
|
||||
cppflags-$(CONFIG_LITHIUM) += -DPEER_PROTECTED_ACCESS
|
||||
cppflags-$(CONFIG_LITHIUM) += -DSERIALIZE_QUEUE_SETUP
|
||||
|
Referens i nytt ärende
Block a user