Skip to content

Commit 6aea2db

Browse files
committed
dma_mcux_edma: Simplify mmap ifdefs
Halve all this ifdef code by making a macro function for the memory mapping. Signed-off-by: Declan Snyder <[email protected]>
1 parent 2450ce2 commit 6aea2db

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

drivers/dma/dma_mcux_edma.c

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,12 @@ struct dma_mcux_edma_data {
150150
#define EDMA_HW_TCD_CSR(dev, ch) (DEV_BASE(dev)->CH[ch].TCD_CSR)
151151
#endif
152152

153+
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
154+
#define EDMA_MMAP_ADDR(addr) MEMORY_ConvertMemoryMapAddress(addr, kMEMORY_Local2DMA)
155+
#else
156+
#define EDMA_MMAP_ADDR(addr) addr
157+
#endif /* FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET */
158+
153159
#if DMA_MCUX_HAS_CHANNEL_GAP
154160
/*
155161
* The hardware channel (takes the gap into account) is used when access DMA registers.
@@ -359,22 +365,10 @@ static int dma_mcux_edma_configure_sg_loop(const struct device *dev,
359365
tcd = &(DEV_CFG(dev)->tcdpool[channel]
360366
[data->transfer_settings.write_idx]);
361367

362-
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
363-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
364-
MEMORY_ConvertMemoryMapAddress(
365-
(uint32_t)(block_config->source_address),
366-
kMEMORY_Local2DMA);
367-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
368-
MEMORY_ConvertMemoryMapAddress(
369-
(uint32_t)(block_config->dest_address),
370-
kMEMORY_Local2DMA);
371-
#else
372-
373368
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
374-
block_config->source_address;
369+
EDMA_MMAP_ADDR(block_config->source_address);
375370
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
376-
block_config->dest_address;
377-
#endif
371+
EDMA_MMAP_ADDR(block_config->dest_address);
378372
EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
379373
block_config->block_size / config->source_data_size;
380374
EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
@@ -709,15 +703,8 @@ static int edma_reload_loop(const struct device *dev, uint32_t channel,
709703
tcd = &(DEV_CFG(dev)->tcdpool[channel][data->transfer_settings.write_idx]);
710704
pre_tcd = &(DEV_CFG(dev)->tcdpool[channel][pre_idx]);
711705

712-
#if defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET
713-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
714-
MEMORY_ConvertMemoryMapAddress(src, kMEMORY_Local2DMA);
715-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) =
716-
MEMORY_ConvertMemoryMapAddress(dst, kMEMORY_Local2DMA);
717-
#else
718-
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = src;
719-
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = dst;
720-
#endif
706+
EDMA_TCD_SADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = EDMA_MMAP_ADDR(src);
707+
EDMA_TCD_DADDR(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = EDMA_MMAP_ADDR(dst);
721708
EDMA_TCD_BITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = size;
722709
EDMA_TCD_CITER(tcd, EDMA_TCD_TYPE((void *)DEV_BASE(dev))) = size;
723710
/* Enable automatically stop */

0 commit comments

Comments
 (0)