On Thu, 2020-05-28 at 16:10 +0200, Matthias Brugger wrote: > > On 28/05/2020 11:57, EastL wrote: > > This patch add dma mask for capability. > > > > Change-Id: I31f4622f9541d769702029532e5f5f185815dda2 > > No Change-Id in the commit message please. > > > Signed-off-by: EastL <EastL.Lee@xxxxxxxxxxxx> > > --- > > drivers/dma/mediatek/mtk-cqdma.c | 13 +++++++++++++ > > 1 file changed, 13 insertions(+) > > > > diff --git a/drivers/dma/mediatek/mtk-cqdma.c b/drivers/dma/mediatek/mtk-cqdma.c > > index bca7118..1805a76 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; > > }; > > @@ -549,6 +551,7 @@ static void mtk_cqdma_hw_deinit(struct mtk_cqdma_device *cqdma) > > }; > > MODULE_DEVICE_TABLE(of, mtk_cqdma_match); > > > > +static u64 cqdma_dmamask; > > static int mtk_cqdma_probe(struct platform_device *pdev) > > { > > struct mtk_cqdma_device *cqdma; > > @@ -607,6 +610,16 @@ static int mtk_cqdma_probe(struct platform_device *pdev) > > cqdma->dma_channels = MTK_CQDMA_NR_PCHANS; > > } > > > > + if (pdev->dev.of_node && of_property_read_u32(pdev->dev.of_node, > > + "dma-channel-mask", > > + &cqdma->dma_mask)) { > > I'd prefer: > > if (pdev->dev.of_node) > ret = of_property_read_u32(pdev->dev.of_node, > "dma-channel-mask", > &cqdma->dma_mask)) > if (ret) { > dev_warn(&pdev->dev, > "Using 0 as missing dma-channel-mask > property\n"); > cqdma->dma_mask = 0; > } > > > + dev_info(&pdev->dev, > > + "Using 0 as missing dma-channel-mask property\n"); > > dev_warn should be OK. > > > + } else { > > + cqdma_dmamask = DMA_BIT_MASK(cqdma->dma_mask); > > + pdev->dev.dma_mask = &cqdma_dmamask; > > if (dma_set_mask(&pdev->dev, > DMA_BIT_MASK(cqdma->dma_mask)) { > /* error out */ > } > OK, I'll fix it on next version. > > + } > > + > > cqdma->pc = devm_kcalloc(&pdev->dev, cqdma->dma_channels, > > sizeof(*cqdma->pc), GFP_KERNEL); > > if (!cqdma->pc) > >