Documentation: document dma device use for mcb
Hannes reported a problem with setting up dma transfers on a mcb device. The problem boiled down to the use of a wrong 'device' for the dma functions. Document how to setup dma transfers for a IP core on a mcb carrier. Reported-by: Hannes Duerr <Hannes.Duerr@duagon.com> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Link: https://lore.kernel.org/r/3bdc8f76b30c2b0e2a2bfab06c2e73797ddc9384.1608305690.git.johannes.thumshirn@wdc.com Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
7178b4a7d6
commit
7594bb08fb
|
@ -18,6 +18,7 @@ MEN Chameleon Bus
|
|||
4.1 The driver structure
|
||||
4.2 Probing and attaching
|
||||
4.3 Initializing the driver
|
||||
4.4 Using DMA
|
||||
|
||||
|
||||
Introduction
|
||||
|
@ -173,3 +174,14 @@ module at the MCB core::
|
|||
The module_mcb_driver() macro can be used to reduce the above code::
|
||||
|
||||
module_mcb_driver(foo_driver);
|
||||
|
||||
Using DMA
|
||||
---------
|
||||
|
||||
To make use of the kernel's DMA-API's function, you will need to use the
|
||||
carrier device's 'struct device'. Fortunately 'struct mcb_device' embeds a
|
||||
pointer (->dma_dev) to the carrier's device for DMA purposes::
|
||||
|
||||
ret = dma_set_mask_and_coherent(&mdev->dma_dev, DMA_BIT_MASK(dma_bits));
|
||||
if (rc)
|
||||
/* Handle errors */
|
||||
|
|
Loading…
Reference in New Issue