All of lore.kernel.org
 help / color / mirror / Atom feed
From: Huang Shijie <b32955@freescale.com>
To: "Lothar Waßmann" <LW@KARO-electronics.de>
Cc: linux@arm.linux.org.uk, David.Woodhouse@intel.com,
	dedekind1@gmail.com, linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, ffainelli@freebox.fr,
	shijie8@gmail.com, Shawn Guo <shawn.guo@freescale.com>
Subject: Re: [PATCH V3 2/6] dmaengine: change the flags of request_irq()
Date: Wed, 30 Mar 2011 17:44:24 +0800	[thread overview]
Message-ID: <4D92FB78.8050109@freescale.com> (raw)
In-Reply-To: <19858.62649.218523.984252@ipc1.ka-ro>

Hi:

> Shawn Guo writes:
>> On Wed, Mar 30, 2011 at 11:03:02AM +0200, Lothar Waßmann wrote:
>>> Hi,
>>>
>>> Huang Shijie writes:
>>>> The GPMI may have many DMA channels, such as the imx23 has
>>>> four DMA channels. All these DMA channels share the same interrupt.
>>>> So change the flags from '0' to IRQF_SHARED, else there will be
>>>> an EBUSY error returns.
>>>>
>>>> Signed-off-by: Huang Shijie<b32955@freescale.com>
>>>> ---
>>>>   drivers/dma/mxs-dma.c |    2 +-
>>>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
>>>> index 88aad4f..0ee5b52 100644
>>>> --- a/drivers/dma/mxs-dma.c
>>>> +++ b/drivers/dma/mxs-dma.c
>>>> @@ -328,7 +328,7 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan)
>>>>   	memset(mxs_chan->ccw, 0, PAGE_SIZE);
>>>>
>>>>   	ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler,
>>>> -				0, "mxs-dma", mxs_dma);
>>>> +				IRQF_SHARED, "mxs-dma", mxs_dma);
>>>>   	if (ret)
>>>>   		goto err_irq;
>>>>
>>> IMO this is wrong. The interrupt is requested with all the same
>>> parameters for each DMA channel. So, actually it is not a shared IRQ,
>> The parameter mxs_chan->chan_irq is different for each channel, except
>> gpmi which has 4 channels sharing one irq.
>>
> That's what I mean. The other interrupts won't need the IRQF_SHARED
> flag anyway.
>
Ok. I will add a GPMI-INTERRUPT check in the mxs_dma_alloc_chan_resources().
>>> but an IRQ with the same handler registered multiple times, which is
>>> just nonsense.
>>>
>>> Instead of declaring it as shared, it would be more sensible to only
>>> register it for the first channel. Otherwise the handler will be
>>> called multiple times in case of an interrupt with only the first
>>> invocation doing all the work and the subsequent invocations just
>>> returning without doing anything.
>>>
>> -- 
>> Regards,
>> Shawn
>>
> Lothar Waßmann
Huang Shijie

WARNING: multiple messages have this Message-ID (diff)
From: b32955@freescale.com (Huang Shijie)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 2/6] dmaengine: change the flags of request_irq()
Date: Wed, 30 Mar 2011 17:44:24 +0800	[thread overview]
Message-ID: <4D92FB78.8050109@freescale.com> (raw)
In-Reply-To: <19858.62649.218523.984252@ipc1.ka-ro>

Hi:

> Shawn Guo writes:
>> On Wed, Mar 30, 2011 at 11:03:02AM +0200, Lothar Wa?mann wrote:
>>> Hi,
>>>
>>> Huang Shijie writes:
>>>> The GPMI may have many DMA channels, such as the imx23 has
>>>> four DMA channels. All these DMA channels share the same interrupt.
>>>> So change the flags from '0' to IRQF_SHARED, else there will be
>>>> an EBUSY error returns.
>>>>
>>>> Signed-off-by: Huang Shijie<b32955@freescale.com>
>>>> ---
>>>>   drivers/dma/mxs-dma.c |    2 +-
>>>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
>>>> index 88aad4f..0ee5b52 100644
>>>> --- a/drivers/dma/mxs-dma.c
>>>> +++ b/drivers/dma/mxs-dma.c
>>>> @@ -328,7 +328,7 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan)
>>>>   	memset(mxs_chan->ccw, 0, PAGE_SIZE);
>>>>
>>>>   	ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler,
>>>> -				0, "mxs-dma", mxs_dma);
>>>> +				IRQF_SHARED, "mxs-dma", mxs_dma);
>>>>   	if (ret)
>>>>   		goto err_irq;
>>>>
>>> IMO this is wrong. The interrupt is requested with all the same
>>> parameters for each DMA channel. So, actually it is not a shared IRQ,
>> The parameter mxs_chan->chan_irq is different for each channel, except
>> gpmi which has 4 channels sharing one irq.
>>
> That's what I mean. The other interrupts won't need the IRQF_SHARED
> flag anyway.
>
Ok. I will add a GPMI-INTERRUPT check in the mxs_dma_alloc_chan_resources().
>>> but an IRQ with the same handler registered multiple times, which is
>>> just nonsense.
>>>
>>> Instead of declaring it as shared, it would be more sensible to only
>>> register it for the first channel. Otherwise the handler will be
>>> called multiple times in case of an interrupt with only the first
>>> invocation doing all the work and the subsequent invocations just
>>> returning without doing anything.
>>>
>> -- 
>> Regards,
>> Shawn
>>
> Lothar Wa?mann
Huang Shijie

  reply	other threads:[~2011-03-30  9:44 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-30  8:40 [PATCH V3 0/6] add the GPMI controller driver for IMX23/IMX28 Huang Shijie
2011-03-30  8:40 ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 1/6] ARM: add GPMI support for imx23/imx28 Huang Shijie
2011-03-30  8:40   ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 2/6] dmaengine: change the flags of request_irq() Huang Shijie
2011-03-30  8:40   ` Huang Shijie
2011-03-30  9:03   ` Lothar Waßmann
2011-03-30  9:03     ` Lothar Waßmann
2011-03-30  9:13     ` Shawn Guo
2011-03-30  9:13       ` Shawn Guo
2011-03-30  9:15       ` Lothar Waßmann
2011-03-30  9:15         ` Lothar Waßmann
2011-03-30  9:44         ` Huang Shijie [this message]
2011-03-30  9:44           ` Huang Shijie
2011-03-31  7:02         ` [PATCH V3 2/6] dmaengine: add interrupt check for GPMI controller Huang Shijie
2011-03-31  7:02           ` Huang Shijie
2011-03-31  8:02           ` Lothar Waßmann
2011-03-31  8:02             ` Lothar Waßmann
2011-03-31  8:50             ` Huang Shijie
2011-03-31  8:50               ` Huang Shijie
2011-03-31  8:50               ` Lothar Waßmann
2011-03-31  8:50                 ` Lothar Waßmann
2011-03-31  9:08                 ` Huang Shijie
2011-03-31  9:08                   ` Huang Shijie
2011-03-31  9:34                   ` Lothar Waßmann
2011-03-31  9:34                     ` Lothar Waßmann
2011-04-01  3:47                   ` Shawn Guo
2011-04-01  3:47                     ` Shawn Guo
2011-04-01  4:36                     ` Huang Shijie
2011-04-01  4:36                       ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 3/6] MTD : add the database for the NANDs Huang Shijie
2011-03-30  8:40   ` Huang Shijie
2011-03-30  8:46   ` Florian Fainelli
2011-03-30  8:46     ` Florian Fainelli
2011-03-30  9:05     ` Huang Shijie
2011-03-30  9:05       ` Huang Shijie
2011-03-30  9:23       ` Florian Fainelli
2011-03-30  9:23         ` Florian Fainelli
2011-03-30  9:54         ` Huang Shijie
2011-03-30  9:54           ` Huang Shijie
2011-03-31 10:10       ` Artem Bityutskiy
2011-03-31 10:10         ` Artem Bityutskiy
2011-03-31 14:17         ` Huang Shijie
2011-03-31 14:17           ` Huang Shijie
2011-09-14 15:44           ` Brian Norris
2011-09-14 15:44             ` Brian Norris
2011-09-15  2:21             ` Huang Shijie
2011-09-15  2:21               ` Huang Shijie
2011-09-16  8:11             ` Angus CLARK
2011-11-21 22:18               ` Brian Norris
2011-12-06 12:06                 ` Angus CLARK
2011-11-24  3:11             ` Huang Shijie
2011-11-24  3:11               ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 4/6] MTD : add the common code for GPMI controller driver Huang Shijie
2011-07-08 16:46   ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 5/6] MTD: add support for imx23 and imx28 Huang Shijie
2011-03-30  8:40   ` Huang Shijie
2011-03-30  8:40 ` [PATCH V3 6/6] MTD : add GPMI driver in the config and Makefile Huang Shijie
2011-03-30  8:40   ` Huang Shijie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D92FB78.8050109@freescale.com \
    --to=b32955@freescale.com \
    --cc=David.Woodhouse@intel.com \
    --cc=LW@KARO-electronics.de \
    --cc=dedekind1@gmail.com \
    --cc=ffainelli@freebox.fr \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux@arm.linux.org.uk \
    --cc=shawn.guo@freescale.com \
    --cc=shijie8@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.