diff mbox

[v2] dmaengine: axi-dmac: Request IRQ with IRQF_SHARED

Message ID 20180426174000.12008-1-mdf@kernel.org (mailing list archive)
State Changes Requested
Headers show

Commit Message

Moritz Fischer April 26, 2018, 5:40 p.m. UTC
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 <lars@metafoo.de>
Signed-off-by: Moritz Fischer <mdf@kernel.org>
---
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(-)

Comments

Vinod Koul April 27, 2018, 5:11 a.m. UTC | #1
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 <lars@metafoo.de>
> Signed-off-by: Moritz Fischer <mdf@kernel.org>
> ---
> 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
>
Lars-Peter Clausen April 27, 2018, 6:53 a.m. UTC | #2
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 <lars@metafoo.de>
>> Signed-off-by: Moritz Fischer <mdf@kernel.org>
>> ---
>> 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
>>
> 

--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul April 27, 2018, 7:08 a.m. UTC | #3
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 :)
Moritz Fischer April 27, 2018, 3:15 p.m. UTC | #4
Hi Vinod,

On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <vinod.koul@intel.com> 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
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lars-Peter Clausen April 27, 2018, 3:18 p.m. UTC | #5
On 04/27/2018 05:15 PM, Moritz Fischer wrote:
> Hi Vinod,
> 
> On Fri, Apr 27, 2018 at 12:08 AM, Vinod Koul <vinod.koul@intel.com> 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".
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul April 28, 2018, 5:10 a.m. UTC | #6
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 <vinod.koul@intel.com> 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..
Moritz Fischer April 28, 2018, 7:31 p.m. UTC | #7
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 <vinod.koul@intel.com> 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
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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;