qcacmn: store per page descriptor index instead of descriptor count

store per page descriptor index instead of descriptor count
in the link descriptor cookie

Change-Id: I719bd5707e6c7f11d7cd159974b5255cd845f2bc
This commit is contained in:
Tallapragada Kalyan
2021-12-17 22:11:24 +05:30
committed by Madan Koyyalamudi
parent f920f723a9
commit 0156c41d12

View File

@@ -3565,6 +3565,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
struct qdf_mem_dma_page_t *dma_pages; struct qdf_mem_dma_page_t *dma_pages;
uint32_t offset = 0; uint32_t offset = 0;
uint32_t count = 0; uint32_t count = 0;
uint32_t desc_id = 0;
void *desc_srng; void *desc_srng;
int link_desc_size = hal_get_link_desc_size(soc->hal_soc); int link_desc_size = hal_get_link_desc_size(soc->hal_soc);
uint32_t *total_link_descs_addr; uint32_t *total_link_descs_addr;
@@ -3616,8 +3617,11 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
desc_srng)) && desc_srng)) &&
(count < total_link_descs)) { (count < total_link_descs)) {
page_idx = count / pages->num_element_per_page; page_idx = count / pages->num_element_per_page;
if (desc_id == pages->num_element_per_page)
desc_id = 0;
offset = count % pages->num_element_per_page; offset = count % pages->num_element_per_page;
cookie = LINK_DESC_COOKIE(count, page_idx, cookie = LINK_DESC_COOKIE(desc_id, page_idx,
soc->link_desc_id_start); soc->link_desc_id_start);
hal_set_link_desc_addr(soc->hal_soc, desc, cookie, hal_set_link_desc_addr(soc->hal_soc, desc, cookie,
@@ -3625,6 +3629,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
+ (offset * link_desc_size), + (offset * link_desc_size),
soc->idle_link_bm_id); soc->idle_link_bm_id);
count++; count++;
desc_id++;
} }
hal_srng_access_end_unlocked(soc->hal_soc, desc_srng); hal_srng_access_end_unlocked(soc->hal_soc, desc_srng);
} else { } else {
@@ -3647,7 +3652,10 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
while (count < total_link_descs) { while (count < total_link_descs) {
page_idx = count / num_descs_per_page; page_idx = count / num_descs_per_page;
offset = count % num_descs_per_page; offset = count % num_descs_per_page;
cookie = LINK_DESC_COOKIE(count, page_idx, if (desc_id == pages->num_element_per_page)
desc_id = 0;
cookie = LINK_DESC_COOKIE(desc_id, page_idx,
soc->link_desc_id_start); soc->link_desc_id_start);
hal_set_link_desc_addr(soc->hal_soc, hal_set_link_desc_addr(soc->hal_soc,
(void *)scatter_buf_ptr, (void *)scatter_buf_ptr,
@@ -3668,6 +3676,7 @@ void dp_link_desc_ring_replenish(struct dp_soc *soc, uint32_t mac_id)
scatter_buf_num]); scatter_buf_num]);
} }
count++; count++;
desc_id++;
} }
/* Setup link descriptor idle list in HW */ /* Setup link descriptor idle list in HW */
hal_setup_link_idle_list(soc->hal_soc, hal_setup_link_idle_list(soc->hal_soc,