2018-04-26 17:48:15

by Moritz Fischer

[permalink] [raw]
Subject: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

Request IRQ with IRQF_SHARED flag. This works since the interrupt
handler already checks if there is an actual IRQ pending and returns
IRQ_NONE otherwise.

Acked-by: Lars-Peter Clausen <[email protected]>
Signed-off-by: Moritz Fischer <[email protected]>
---
Changes from v1:
- Added Lars' Acked-by
- Dropped patch [1/2] and changed accordingly
---
drivers/dma/dma-axi-dmac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
index 2419fe524daa..15b2453d2647 100644
--- a/drivers/dma/dma-axi-dmac.c
+++ b/drivers/dma/dma-axi-dmac.c
@@ -687,7 +687,7 @@ static int axi_dmac_probe(struct platform_device *pdev)
if (ret)
goto err_unregister_device;

- ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, 0,
+ ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, IRQF_SHARED,
dev_name(&pdev->dev), dmac);
if (ret)
goto err_unregister_of;
--
2.17.0



2018-04-27 05:08:00

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
> Request IRQ with IRQF_SHARED flag. This works since the interrupt
> handler already checks if there is an actual IRQ pending and returns
> IRQ_NONE otherwise.

hmmm what are we trying to fix here? Is your device on a shared line or not?

>
> Acked-by: Lars-Peter Clausen <[email protected]>
> Signed-off-by: Moritz Fischer <[email protected]>
> ---
> Changes from v1:
> - Added Lars' Acked-by
> - Dropped patch [1/2] and changed accordingly
> ---
> drivers/dma/dma-axi-dmac.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
> index 2419fe524daa..15b2453d2647 100644
> --- a/drivers/dma/dma-axi-dmac.c
> +++ b/drivers/dma/dma-axi-dmac.c
> @@ -687,7 +687,7 @@ static int axi_dmac_probe(struct platform_device *pdev)
> if (ret)
> goto err_unregister_device;
>
> - ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, 0,
> + ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, IRQF_SHARED,
> dev_name(&pdev->dev), dmac);
> if (ret)
> goto err_unregister_of;
> --
> 2.17.0
>

--
~Vinod

2018-04-27 06:55:10

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On 04/27/2018 07:11 AM, Vinod Koul wrote:
> On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
>> Request IRQ with IRQF_SHARED flag. This works since the interrupt
>> handler already checks if there is an actual IRQ pending and returns
>> IRQ_NONE otherwise.
>
> hmmm what are we trying to fix here? Is your device on a shared line or not?

IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
the driver can handle it if the IRQ is on a shared line. Since the driver
can handle it setting the flag is a good idea since this enables usecases
where the line is shared.

>
>>
>> Acked-by: Lars-Peter Clausen <[email protected]>
>> Signed-off-by: Moritz Fischer <[email protected]>
>> ---
>> Changes from v1:
>> - Added Lars' Acked-by
>> - Dropped patch [1/2] and changed accordingly
>> ---
>> drivers/dma/dma-axi-dmac.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi-dmac.c
>> index 2419fe524daa..15b2453d2647 100644
>> --- a/drivers/dma/dma-axi-dmac.c
>> +++ b/drivers/dma/dma-axi-dmac.c
>> @@ -687,7 +687,7 @@ static int axi_dmac_probe(struct platform_device *pdev)
>> if (ret)
>> goto err_unregister_device;
>>
>> - ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, 0,
>> + ret = request_irq(dmac->irq, axi_dmac_interrupt_handler, IRQF_SHARED,
>> dev_name(&pdev->dev), dmac);
>> if (ret)
>> goto err_unregister_of;
>> --
>> 2.17.0
>>
>


2018-04-27 07:05:14

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On Fri, Apr 27, 2018 at 08:53:39AM +0200, Lars-Peter Clausen wrote:
> On 04/27/2018 07:11 AM, Vinod Koul wrote:
> > On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
> >> Request IRQ with IRQF_SHARED flag. This works since the interrupt
> >> handler already checks if there is an actual IRQ pending and returns
> >> IRQ_NONE otherwise.
> >
> > hmmm what are we trying to fix here? Is your device on a shared line or not?
>
> IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
> the driver can handle it if the IRQ is on a shared line. Since the driver
> can handle it setting the flag is a good idea since this enables usecases
> where the line is shared.

Yes that is correct indeed, but what is the motivation for the change.

If you never expect this to be in shared environment why to do this?
Sorry but "it works" is not a good enough reason for this change, to enable
usecases where the line is shared is a good reason :)

--
~Vinod

2018-04-27 15:17:19

by Moritz Fischer

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

Hi Vinod,

On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <[email protected]> wrote:
> On Fri, Apr 27, 2018 at 08:53:39AM +0200, Lars-Peter Clausen wrote:
>> On 04/27/2018 07:11 AM, Vinod Koul wrote:
>> > On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
>> >> Request IRQ with IRQF_SHARED flag. This works since the interrupt
>> >> handler already checks if there is an actual IRQ pending and returns
>> >> IRQ_NONE otherwise.
>> >
>> > hmmm what are we trying to fix here? Is your device on a shared line or not?
>>
>> IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
>> the driver can handle it if the IRQ is on a shared line. Since the driver
>> can handle it setting the flag is a good idea since this enables usecases
>> where the line is shared.
>
> Yes that is correct indeed, but what is the motivation for the change.
>
> If you never expect this to be in shared environment why to do this?
> Sorry but "it works" is not a good enough reason for this change, to enable
> usecases where the line is shared is a good reason :)

Remember, this is an FPGA soft core. I happen to have a design [1] where it
is hooked up with multiple of them on one IRQ line, so to make this work,
I need this change.

Thanks,

Moritz

[1] https://www.ettus.com/product/details/USRP-N310

2018-04-27 15:20:04

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On 04/27/2018 05:15 PM, Moritz Fischer wrote:
> Hi Vinod,
>
> On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <[email protected]> wrote:
>> On Fri, Apr 27, 2018 at 08:53:39AM +0200, Lars-Peter Clausen wrote:
>>> On 04/27/2018 07:11 AM, Vinod Koul wrote:
>>>> On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
>>>>> Request IRQ with IRQF_SHARED flag. This works since the interrupt
>>>>> handler already checks if there is an actual IRQ pending and returns
>>>>> IRQ_NONE otherwise.
>>>>
>>>> hmmm what are we trying to fix here? Is your device on a shared line or not?
>>>
>>> IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
>>> the driver can handle it if the IRQ is on a shared line. Since the driver
>>> can handle it setting the flag is a good idea since this enables usecases
>>> where the line is shared.
>>
>> Yes that is correct indeed, but what is the motivation for the change.
>>
>> If you never expect this to be in shared environment why to do this?
>> Sorry but "it works" is not a good enough reason for this change, to enable
>> usecases where the line is shared is a good reason :)
>
> Remember, this is an FPGA soft core. I happen to have a design [1] where it
> is hooked up with multiple of them on one IRQ line, so to make this work,
> I need this change.

I think what Vinod is asking for is a change to the commit message saying
that "this change enables the driver to be used with devices where the
interrupt line is shared".

2018-04-28 05:08:31

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On Fri, Apr 27, 2018 at 05:18:29PM +0200, Lars-Peter Clausen wrote:
> On 04/27/2018 05:15 PM, Moritz Fischer wrote:
> > Hi Vinod,
> >
> > On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <[email protected]> wrote:
> >> On Fri, Apr 27, 2018 at 08:53:39AM +0200, Lars-Peter Clausen wrote:
> >>> On 04/27/2018 07:11 AM, Vinod Koul wrote:
> >>>> On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
> >>>>> Request IRQ with IRQF_SHARED flag. This works since the interrupt
> >>>>> handler already checks if there is an actual IRQ pending and returns
> >>>>> IRQ_NONE otherwise.
> >>>>
> >>>> hmmm what are we trying to fix here? Is your device on a shared line or not?
> >>>
> >>> IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
> >>> the driver can handle it if the IRQ is on a shared line. Since the driver
> >>> can handle it setting the flag is a good idea since this enables usecases
> >>> where the line is shared.
> >>
> >> Yes that is correct indeed, but what is the motivation for the change.
> >>
> >> If you never expect this to be in shared environment why to do this?
> >> Sorry but "it works" is not a good enough reason for this change, to enable
> >> usecases where the line is shared is a good reason :)
> >
> > Remember, this is an FPGA soft core. I happen to have a design [1] where it
> > is hooked up with multiple of them on one IRQ line, so to make this work,
> > I need this change.
>
> I think what Vinod is asking for is a change to the commit message saying
> that "this change enables the driver to be used with devices where the
> interrupt line is shared".

Correct, changelog need to reflect why a change was made, down the line
people need to know the reasons, sometimes it might be even you..

--
~Vinod

2018-04-28 19:33:03

by Moritz Fischer

[permalink] [raw]
Subject: Re: [PATCH v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

On Sat, Apr 28, 2018 at 10:40:43AM +0530, Vinod Koul wrote:
> On Fri, Apr 27, 2018 at 05:18:29PM +0200, Lars-Peter Clausen wrote:
> > On 04/27/2018 05:15 PM, Moritz Fischer wrote:
> > > Hi Vinod,
> > >
> > > On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <[email protected]> wrote:
> > >> On Fri, Apr 27, 2018 at 08:53:39AM +0200, Lars-Peter Clausen wrote:
> > >>> On 04/27/2018 07:11 AM, Vinod Koul wrote:
> > >>>> On Thu, Apr 26, 2018 at 10:40:00AM -0700, Moritz Fischer wrote:
> > >>>>> Request IRQ with IRQF_SHARED flag. This works since the interrupt
> > >>>>> handler already checks if there is an actual IRQ pending and returns
> > >>>>> IRQ_NONE otherwise.
> > >>>>
> > >>>> hmmm what are we trying to fix here? Is your device on a shared line or not?
> > >>>
> > >>> IRQF_SHARED does not mean that the IRQ is on a shared line. It means that
> > >>> the driver can handle it if the IRQ is on a shared line. Since the driver
> > >>> can handle it setting the flag is a good idea since this enables usecases
> > >>> where the line is shared.
> > >>
> > >> Yes that is correct indeed, but what is the motivation for the change.
> > >>
> > >> If you never expect this to be in shared environment why to do this?
> > >> Sorry but "it works" is not a good enough reason for this change, to enable
> > >> usecases where the line is shared is a good reason :)
> > >
> > > Remember, this is an FPGA soft core. I happen to have a design [1] where it
> > > is hooked up with multiple of them on one IRQ line, so to make this work,
> > > I need this change.
> >
> > I think what Vinod is asking for is a change to the commit message saying
> > that "this change enables the driver to be used with devices where the
> > interrupt line is shared".
>
> Correct, changelog need to reflect why a change was made, down the line
> people need to know the reasons, sometimes it might be even you..

Ok, communication is hard :) Will resubmit with fixed commit message,

Thanks for your feedback,

Moritz