Message ID | 1593673564-4425-4-git-send-email-EastL.Lee@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v6,1/4] dt-bindings: dmaengine: Add MediaTek Command-Queue DMA controller bindings | expand |
On 02/07/2020 09:06, EastL Lee wrote: > This patch add dma mask for capability. > > Signed-off-by: EastL Lee <EastL.Lee@mediatek.com> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com> > --- > 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..1610632 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 failed\n"); > + return -EINVAL; > + } > + > cqdma->pc = devm_kcalloc(&pdev->dev, cqdma->dma_channels, > sizeof(*cqdma->pc), GFP_KERNEL); > if (!cqdma->pc) >
diff --git a/drivers/dma/mediatek/mtk-cqdma.c b/drivers/dma/mediatek/mtk-cqdma.c index 905bbcb..1610632 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 failed\n"); + return -EINVAL; + } + cqdma->pc = devm_kcalloc(&pdev->dev, cqdma->dma_channels, sizeof(*cqdma->pc), GFP_KERNEL); if (!cqdma->pc)
This patch add dma mask for capability. Signed-off-by: EastL Lee <EastL.Lee@mediatek.com> --- drivers/dma/mediatek/mtk-cqdma.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)