diff options
author | Suman Anna <s-anna@ti.com> | 2021-04-20 14:58:48 -0500 |
---|---|---|
committer | Suman Anna <s-anna@ti.com> | 2021-04-20 15:49:01 -0500 |
commit | 8c3270d48d6598a7c0ea0e41c03c8e1af6ae1626 (patch) | |
tree | af944381cd6ea6b69fe5439f76c3fe6fd869e468 | |
parent | b17f349923c0cd366867c99634a4c51ab7ef74fc (diff) | |
download | linuxutils-8c3270d48d6598a7c0ea0e41c03c8e1af6ae1626.tar.gz |
cmemk: Introduce cmem_dma_offset_configure wrapper
The Keystone2 platforms require the dma_pfn_offset to be configured
on the CMEM device. Introduce a new cmem_dma_offset_configure() wrapper
function so that the Linux kernel version variations can be localized
to a single function. The wrapper is only effective for ARCH_KEYSTONE
with LPAE enable (no change in functionality) and is a no-op for all
other builds.
Signed-off-by: Suman Anna <s-anna@ti.com>
-rw-r--r-- | src/cmem/module/cmemk.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cmem/module/cmemk.c b/src/cmem/module/cmemk.c index 594a7d2..2239c19 100644 --- a/src/cmem/module/cmemk.c +++ b/src/cmem/module/cmemk.c @@ -2735,6 +2735,13 @@ fail: return err; } +static void __init cmem_dma_offset_configure(struct device *dev) +{ +#if IS_ENABLED(CONFIG_ARCH_KEYSTONE) && IS_ENABLED(CONFIG_ARM_LPAE) + dev->dma_pfn_offset = KEYSTONE_DMA_PFN_OFFSET; +#endif +} + int __init cmem_init(void) { int bi; @@ -2787,9 +2794,7 @@ int __init cmem_init(void) NULL, "cmem"); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) cmem_cma_dev_0->coherent_dma_mask = DMA_BIT_MASK(32); -#if IS_ENABLED(CONFIG_ARCH_KEYSTONE) && IS_ENABLED(CONFIG_ARM_LPAE) - cmem_cma_dev_0->dma_pfn_offset = KEYSTONE_DMA_PFN_OFFSET; -#endif + cmem_dma_offset_configure(cmem_cma_dev_0); #endif for (bi = 0; bi < NBLOCKS; bi++) { if (!block_start[bi] || !block_end[bi]) { @@ -2921,9 +2926,8 @@ int __init cmem_init(void) p_objs[NBLOCKS][i].numbufs = cmem_cma_p_objs[i].numbufs; cmem_cma_dev[i].coherent_dma_mask = DMA_BIT_MASK(32); -#if IS_ENABLED(CONFIG_ARCH_KEYSTONE) && IS_ENABLED(CONFIG_ARM_LPAE) \ - && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) - cmem_cma_dev[i].dma_pfn_offset = KEYSTONE_DMA_PFN_OFFSET; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)) + cmem_dma_offset_configure(&cmem_cma_dev[i]); #endif __D(" pool %d: size=%#llx numbufs=%d\n", i, p_objs[NBLOCKS][i].size, p_objs[NBLOCKS][i].numbufs); |