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:
@@ -299,6 +299,18 @@ void qdf_mem_multi_pages_free(qdf_device_t osdev,
|
|||||||
|
|
||||||
#endif /* MEMORY_DEBUG */
|
#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.
|
* qdf_aligned_malloc() - allocates aligned QDF memory.
|
||||||
* @size: Size to be allocated
|
* @size: Size to be allocated
|
||||||
|
@@ -1847,6 +1847,31 @@ void qdf_mem_multi_pages_free(qdf_device_t osdev,
|
|||||||
qdf_export_symbol(qdf_mem_multi_pages_free);
|
qdf_export_symbol(qdf_mem_multi_pages_free);
|
||||||
#endif
|
#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)
|
void __qdf_mem_free(void *ptr)
|
||||||
{
|
{
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
|
Reference in New Issue
Block a user