mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 15:49:17 -04:00
qcacmn: fix the rxDMA buffer address configuration
after every 1024 pkts (size of rxDMA ring) received we are over-writing the start of rxDMA ring (wrap-around case)with new buffer address, but this was not done properly as we were ORing with the old buffer address this was resulting in buffer address corruption. CRs-Fixed: 1098223 Change-Id: I6b167412ef13eda3bc1403d83955afae4c83461b
This commit is contained in:
parent
7d813a7537
commit
a5cbbfec4c
1 changed files with 10 additions and 2 deletions
|
|
@ -146,7 +146,7 @@ enum hal_rx_ret_buf_manager {
|
|||
*/
|
||||
#define HAL_RXDMA_PADDR_LO_SET(buff_addr_info, paddr_lo) \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_0_BUFFER_ADDR_31_0_OFFSET >> 2))) |= \
|
||||
(BUFFER_ADDR_INFO_0_BUFFER_ADDR_31_0_OFFSET >> 2))) = \
|
||||
(paddr_lo << BUFFER_ADDR_INFO_0_BUFFER_ADDR_31_0_LSB) & \
|
||||
BUFFER_ADDR_INFO_0_BUFFER_ADDR_31_0_MASK)
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ enum hal_rx_ret_buf_manager {
|
|||
*/
|
||||
#define HAL_RXDMA_PADDR_HI_SET(buff_addr_info, paddr_hi) \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_1_BUFFER_ADDR_39_32_OFFSET >> 2))) |= \
|
||||
(BUFFER_ADDR_INFO_1_BUFFER_ADDR_39_32_OFFSET >> 2))) = \
|
||||
(paddr_hi << BUFFER_ADDR_INFO_1_BUFFER_ADDR_39_32_LSB) & \
|
||||
BUFFER_ADDR_INFO_1_BUFFER_ADDR_39_32_MASK)
|
||||
|
||||
|
|
@ -164,6 +164,10 @@ enum hal_rx_ret_buf_manager {
|
|||
* macro to set the cookie into the rxdma ring entry
|
||||
*/
|
||||
#define HAL_RXDMA_COOKIE_SET(buff_addr_info, cookie) \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_OFFSET >> 2))) &= \
|
||||
~((cookie << BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_LSB) & \
|
||||
BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_MASK)); \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_OFFSET >> 2))) |= \
|
||||
(cookie << BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_LSB) & \
|
||||
|
|
@ -173,6 +177,10 @@ enum hal_rx_ret_buf_manager {
|
|||
* macro to set the manager into the rxdma ring entry
|
||||
*/
|
||||
#define HAL_RXDMA_MANAGER_SET(buff_addr_info, manager) \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_OFFSET >> 2))) &= \
|
||||
~((manager << BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_LSB) & \
|
||||
BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_MASK)); \
|
||||
((*(((unsigned int *) buff_addr_info) + \
|
||||
(BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_OFFSET >> 2))) |= \
|
||||
(manager << BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_LSB) & \
|
||||
|
|
|
|||
Loading…
Reference in a new issue