On Fri, 2020-06-19 at 11:39 +0200, Matthias Brugger wrote: > > On 19/06/2020 10:05, EastL wrote: > > This patch add dma mask for capability. > > > > Signed-off-by: EastL <EastL.Lee@xxxxxxxxxxxx> > > --- > > drivers/dma/mediatek/mtk-cqdma.c | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/drivers/dma/mediatek/mtk-cqdma.c b/drivers/dma/mediatek/mtk-cqdma.c > > index 905bbcb..ed33c64 100644 > > --- a/drivers/dma/mediatek/mtk-cqdma.c > > +++ b/drivers/dma/mediatek/mtk-cqdma.c > > @@ -117,6 +117,7 @@ struct mtk_cqdma_vchan { > > * @clk: The clock that device internal is using > > * @dma_requests: The number of VCs the device supports to > > * @dma_channels: The number of PCs the device supports to > > + * @dma_mask: A mask for DMA capability > > * @vc: The pointer to all available VCs > > * @pc: The pointer to all the underlying PCs > > */ > > @@ -126,6 +127,7 @@ struct mtk_cqdma_device { > > > > u32 dma_requests; > > u32 dma_channels; > > + u32 dma_mask; > > struct mtk_cqdma_vchan *vc; > > struct mtk_cqdma_pchan **pc; > > }; > > @@ -607,6 +609,21 @@ static int mtk_cqdma_probe(struct platform_device *pdev) > > cqdma->dma_channels = MTK_CQDMA_NR_PCHANS; > > } > > > > + if (pdev->dev.of_node) > > + err = of_property_read_u32(pdev->dev.of_node, > > + "dma-channel-mask", > > + &cqdma->dma_mask); > > + if (err) { > > + dev_warn(&pdev->dev, > > + "Using 0 as missing dma-channel-mask property\n"); > > + cqdma->dma_mask = 0; > > + } > > + > > + if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(cqdma->dma_mask))) { > > + dev_warn(&pdev->dev, "DMA set mask fail\n"); > > fail -> failed > > With this: > Reviewed-by: Matthias Brugger <matthias.bgg@xxxxxxxxx> OK. > > > + return -EINVAL; > > + } > > + > > cqdma->pc = devm_kcalloc(&pdev->dev, cqdma->dma_channels, > > sizeof(*cqdma->pc), GFP_KERNEL); > > if (!cqdma->pc) > >