Messages in this thread | | | Date | Fri, 13 May 2022 02:39:00 +0300 | Subject | Re: [PATCH v5 13/22] dma: qcom: bam_dma: Add support to initialize interconnect path | From | Dmitry Baryshkov <> |
| |
On 10/11/2021 13:59, Bhupesh Sharma wrote: > From: Thara Gopinath <thara.gopinath@linaro.org> > > BAM dma engine associated with certain hardware blocks could require > relevant interconnect pieces be initialized prior to the dma engine > initialization. For e.g. crypto bam dma engine on sm8250. Such requirement > is passed on to the bam dma driver from dt via the "interconnects" > property. Add support in bam_dma driver to check whether the interconnect > path is accessible/enabled prior to attempting driver intializations. > > Cc: Bjorn Andersson <bjorn.andersson@linaro.org> > Cc: Rob Herring <robh+dt@kernel.org> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > [Make header file inclusion alphabetical and use 'devm_of_icc_get()'] > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > --- > drivers/dma/qcom/bam_dma.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c > index c8a77b428b52..19fb17db467f 100644 > --- a/drivers/dma/qcom/bam_dma.c > +++ b/drivers/dma/qcom/bam_dma.c > @@ -26,6 +26,7 @@ > #include <linux/kernel.h> > #include <linux/io.h> > #include <linux/init.h> > +#include <linux/interconnect.h> > #include <linux/slab.h> > #include <linux/module.h> > #include <linux/interrupt.h> > @@ -392,6 +393,7 @@ struct bam_device { > const struct reg_offset_data *layout; > > struct clk *bamclk; > + struct icc_path *mem_path; > int irq; > > /* dma start transaction tasklet */ > @@ -1284,6 +1286,15 @@ static int bam_dma_probe(struct platform_device *pdev) > return ret; > } > > + /* Ensure that interconnects are initialized */ > + bdev->mem_path = devm_of_icc_get(bdev->dev, "memory");
Also, as a note, the "memory" is not a good name for the ICC path. Usually they take the form of "src-dst". However in this case you can probably use NULL for the first and the only icc path.
> +
Extra newline, not necessary.
> + if (IS_ERR(bdev->mem_path)) { > + ret = PTR_ERR(bdev->mem_path); > + dev_err(bdev->dev, "failed to acquire icc path %d\n", ret); > + goto err_disable_clk; > + } > + > ret = bam_init(bdev); > if (ret) > goto err_disable_clk;
-- With best wishes Dmitry
| |