Messages in this thread | | | Date | Sun, 13 Oct 2013 21:01:11 +0530 | From | Vinod Koul <> | Subject | Re: [PATCH] dma: pl330: Support per channel irq allocation |
| |
On Mon, Sep 30, 2013 at 08:50:48AM +0200, Michal Simek wrote: > Some pl330 have per channel irq and it is necessary > to allocate all of them. Loop over irq assigned for this > device to support these pl330 IPs. > > For example this IP is available on Xilinx Zynq platform. > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > --- > Hi Vinod, > > this is the patch I told you about it. I have tested it > just on Zynq(8 dma channels) but it shouldn't break > any other pl330 clones. > One more change has to be done to support all 8 dma channels > which is to extend AMBA_NR_IRQS which is still 2. > But I will send separate patch for it directly to Russell.
Thanks, this patch looks fine, Lars can you try testing this if you have this HW please?
~Vinod > > Thanks, > Michal > > --- > drivers/dma/pl330.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c > index 58623dc..96de393 100644 > --- a/drivers/dma/pl330.c > +++ b/drivers/dma/pl330.c > @@ -2922,11 +2922,18 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) > > amba_set_drvdata(adev, pdmac); > > - irq = adev->irq[0]; > - ret = devm_request_irq(&adev->dev, irq, pl330_irq_handler, 0, > - dev_name(&adev->dev), pi); > - if (ret) > - return ret; > + for (i = 0; i <= AMBA_NR_IRQS; i++) { > + irq = adev->irq[i]; > + if (irq) { > + ret = devm_request_irq(&adev->dev, irq, > + pl330_irq_handler, 0, > + dev_name(&adev->dev), pi); > + if (ret) > + return ret; > + } else { > + break; > + } > + } > > pi->pcfg.periph_id = adev->periphid; > ret = pl330_add(pi); > -- > 1.8.2.3 >
-- [unhandled content-type:application/pgp-signature] | |