[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <525ACB39.5000205@metafoo.de>
Date: Sun, 13 Oct 2013 18:32:57 +0200
From: Lars-Peter Clausen <lars@...afoo.de>
To: Vinod Koul <vinod.koul@...el.com>
CC: Michal Simek <michal.simek@...inx.com>,
linux-kernel@...r.kernel.org, monstr@...str.eu,
Dan Williams <dan.j.williams@...el.com>
Subject: Re: [PATCH] dma: pl330: Support per channel irq allocation
On 10/13/2013 05:31 PM, Vinod Koul wrote:
> 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@...inx.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
Michal and I are using the same hardware, I have his patch in my tree and it is
working fine.
Tested-by: Lars-Peter Clausen <lars@...afoo.de>
>>
>> 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
>>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists