diff options
-rw-r--r-- | drivers/bcma/core.c | 16 | ||||
-rw-r--r-- | include/linux/bcma/bcma.h | 5 |
2 files changed, 21 insertions, 0 deletions
diff --git a/drivers/bcma/core.c b/drivers/bcma/core.c index 2d8506dbca76..4a04a49cc06d 100644 --- a/drivers/bcma/core.c +++ b/drivers/bcma/core.c | |||
@@ -106,3 +106,19 @@ void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, bool on) | |||
106 | } | 106 | } |
107 | } | 107 | } |
108 | EXPORT_SYMBOL_GPL(bcma_core_pll_ctl); | 108 | EXPORT_SYMBOL_GPL(bcma_core_pll_ctl); |
109 | |||
110 | u32 bcma_core_dma_translation(struct bcma_device *core) | ||
111 | { | ||
112 | switch (core->bus->hosttype) { | ||
113 | case BCMA_HOSTTYPE_PCI: | ||
114 | if (bcma_aread32(core, BCMA_IOST) & BCMA_IOST_DMA64) | ||
115 | return BCMA_DMA_TRANSLATION_DMA64_CMT; | ||
116 | else | ||
117 | return BCMA_DMA_TRANSLATION_DMA32_CMT; | ||
118 | default: | ||
119 | pr_err("DMA translation unknown for host %d\n", | ||
120 | core->bus->hosttype); | ||
121 | } | ||
122 | return BCMA_DMA_TRANSLATION_NONE; | ||
123 | } | ||
124 | EXPORT_SYMBOL(bcma_core_dma_translation); | ||
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h index cc1582d24fbc..8c96654bef16 100644 --- a/include/linux/bcma/bcma.h +++ b/include/linux/bcma/bcma.h | |||
@@ -262,5 +262,10 @@ extern void bcma_core_set_clockmode(struct bcma_device *core, | |||
262 | enum bcma_clkmode clkmode); | 262 | enum bcma_clkmode clkmode); |
263 | extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, | 263 | extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, |
264 | bool on); | 264 | bool on); |
265 | #define BCMA_DMA_TRANSLATION_MASK 0xC0000000 | ||
266 | #define BCMA_DMA_TRANSLATION_NONE 0x00000000 | ||
267 | #define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */ | ||
268 | #define BCMA_DMA_TRANSLATION_DMA64_CMT 0x80000000 /* Client Mode Translation for 64-bit DMA */ | ||
269 | extern u32 bcma_core_dma_translation(struct bcma_device *core); | ||
265 | 270 | ||
266 | #endif /* LINUX_BCMA_H_ */ | 271 | #endif /* LINUX_BCMA_H_ */ |