qcacmn: add function for multi-pages memory zero operation

Add function qdf_mem_multi_pages_zero() to support multi-pages
memory zero operation.

Change-Id: I08b5c2722c02881550d3a1da27d5137c0957fd51
CRs-Fixed: 2776365
This commit is contained in:
Jinwei Chen
2020-09-14 21:52:20 +08:00
committed by snandini
parent e1fb6b17d4
commit 21d6fd0ac6
2 changed files with 37 additions and 0 deletions

View File

@@ -299,6 +299,18 @@ void qdf_mem_multi_pages_free(qdf_device_t osdev,
#endif /* MEMORY_DEBUG */
/**
* qdf_mem_multi_pages_zero() - zero out each page memory
* @pages: Multi page information storage
* @cacheable: Coherent memory or cacheable memory
*
* This function will zero out each page memory
*
* Return: None
*/
void qdf_mem_multi_pages_zero(struct qdf_mem_multi_page_t *pages,
bool cacheable);
/**
* qdf_aligned_malloc() - allocates aligned QDF memory.
* @size: Size to be allocated

View File

@@ -1847,6 +1847,31 @@ void qdf_mem_multi_pages_free(qdf_device_t osdev,
qdf_export_symbol(qdf_mem_multi_pages_free);
#endif
void qdf_mem_multi_pages_zero(struct qdf_mem_multi_page_t *pages,
bool cacheable)
{
unsigned int page_idx;
struct qdf_mem_dma_page_t *dma_pages;
if (!pages->page_size)
pages->page_size = qdf_page_size;
if (cacheable) {
for (page_idx = 0; page_idx < pages->num_pages; page_idx++)
qdf_mem_zero(pages->cacheable_pages[page_idx],
pages->page_size);
} else {
dma_pages = pages->dma_pages;
for (page_idx = 0; page_idx < pages->num_pages; page_idx++) {
qdf_mem_zero(dma_pages->page_v_addr_start,
pages->page_size);
dma_pages++;
}
}
}
qdf_export_symbol(qdf_mem_multi_pages_zero);
void __qdf_mem_free(void *ptr)
{
if (!ptr)