mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 09:11:49 +00:00
bcma: inform drivers about translation bits needed for the core
When using DMA, drivers need to pass special translation info to the hardware. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a9770a815d
commit
05aec23336
@ -106,3 +106,19 @@ void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status, bool on)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(bcma_core_pll_ctl);
|
EXPORT_SYMBOL_GPL(bcma_core_pll_ctl);
|
||||||
|
|
||||||
|
u32 bcma_core_dma_translation(struct bcma_device *core)
|
||||||
|
{
|
||||||
|
switch (core->bus->hosttype) {
|
||||||
|
case BCMA_HOSTTYPE_PCI:
|
||||||
|
if (bcma_aread32(core, BCMA_IOST) & BCMA_IOST_DMA64)
|
||||||
|
return BCMA_DMA_TRANSLATION_DMA64_CMT;
|
||||||
|
else
|
||||||
|
return BCMA_DMA_TRANSLATION_DMA32_CMT;
|
||||||
|
default:
|
||||||
|
pr_err("DMA translation unknown for host %d\n",
|
||||||
|
core->bus->hosttype);
|
||||||
|
}
|
||||||
|
return BCMA_DMA_TRANSLATION_NONE;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(bcma_core_dma_translation);
|
||||||
|
@ -262,5 +262,10 @@ extern void bcma_core_set_clockmode(struct bcma_device *core,
|
|||||||
enum bcma_clkmode clkmode);
|
enum bcma_clkmode clkmode);
|
||||||
extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
|
extern void bcma_core_pll_ctl(struct bcma_device *core, u32 req, u32 status,
|
||||||
bool on);
|
bool on);
|
||||||
|
#define BCMA_DMA_TRANSLATION_MASK 0xC0000000
|
||||||
|
#define BCMA_DMA_TRANSLATION_NONE 0x00000000
|
||||||
|
#define BCMA_DMA_TRANSLATION_DMA32_CMT 0x40000000 /* Client Mode Translation for 32-bit DMA */
|
||||||
|
#define BCMA_DMA_TRANSLATION_DMA64_CMT 0x80000000 /* Client Mode Translation for 64-bit DMA */
|
||||||
|
extern u32 bcma_core_dma_translation(struct bcma_device *core);
|
||||||
|
|
||||||
#endif /* LINUX_BCMA_H_ */
|
#endif /* LINUX_BCMA_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user