[Sound-open-firmware] [PATCH v3 2/6] dma: update platform DMAC definitions with capabilities
Liam Girdwood
liam.r.girdwood at linux.intel.com
Sun Jun 10 22:02:06 CEST 2018
On Sun, 2018-06-10 at 20:51 +0100, Liam Girdwood wrote:
> > diff --git a/src/include/sof/dma.h b/src/include/sof/dma.h
> > index af15d14..4bc178e 100644
> > --- a/src/include/sof/dma.h
> > +++ b/src/include/sof/dma.h
> > @@ -48,6 +48,21 @@ enum dma_copy_dir {
> > DMA_DIR_DEV_TO_DEV,
> > };
Thinking more on this, I think we just need direction mask, caps mask and device
mask.
We can remove the dir enum too.
> >
> > +
> > +/* DMA capabilities bitmasks used to define DMA copy direction */
> > +#define DMA_CAP_MEM_TO_MEM (1 << 0)
> > +#define DMA_CAP_HMEM_TO_LMEM (1 << 1)
> > +#define DMA_CAP_LMEM_TO_HMEM (1 << 2)
> > +#define DMA_CAP_MEM_TO_DEV (1 << 3)
> > +#define DMA_CAP_DEV_TO_MEM (1 << 4)
> > +#define DMA_CAP_DEV_TO_DEV (1 << 5)
> > +
These are direction so would be DMA_DIR_blah
> > +/* DMA capabilities bitmasks used to define the type of DMA */
> > +#define DMA_CAP_GP_LP (1 << 6)
> > +#define DMA_CAP_GP_HP (1 << 7)
These two above are caps.
> > +#define DMA_CAP_HDA_HOST (1 << 8)
> > +#define DMA_CAP_HDA_LINK (1 << 9)
> > +
>
> Thinking more, it may be better to have :-
>
> #define DMA_CAP_HDA
> #define DMA_CAP_SSP
> #define DMA_CAP_DMIC
These would be DMAC_DEV_HDA, DMA_DEV_SSP, etc
>
> These can be used in conjunction with the other caps when requesting a DMAC
> since HDA_HOST and HDA_LINK is very Intel specific.
>
> > /* DMA IRQ types */
> > #define DMA_IRQ_TYPE_BLOCK (1 << 0)
> > #define DMA_IRQ_TYPE_LLIST (1 << 1)
> > @@ -118,6 +133,7 @@ struct dma_ops {
> > /* DMA platform data */
> > struct dma_plat_data {
> > uint32_t id;
> > + uint32_t dma_cap;
uint32_t dir; /* bit mask of directions */
uint32_t caps; /* bitmask of caps */
uint32_t devs; /* bitmask of supported devs */
>
> lets just call this caps (since dma is implied already)
Liam
More information about the Sound-open-firmware
mailing list