From: g.liakhovetski@gmx.de (Guennadi Liakhovetski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] mx2_camera: return IRQ_NONE when doing nothing
Date: Wed, 28 Jul 2010 13:25:27 +0200 (CEST) [thread overview]
Message-ID: <Pine.LNX.4.64.1007281317400.23907@axis700.grange> (raw)
In-Reply-To: <49da2476310a921b19226d572503b7c04175204d.1280229966.git.baruch@tkos.co.il>
A general comment to your patches: the actual driver is going to be merged
via the ARM tree, all other your incremental patches should rather go via
the v4l tree. So, we'll have to synchronise with ARM, let's hope ARM
patches go in early enough.
On Tue, 27 Jul 2010, Baruch Siach wrote:
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
> drivers/media/video/mx2_camera.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c
> index 1536bd4..b42ad8d 100644
> --- a/drivers/media/video/mx2_camera.c
> +++ b/drivers/media/video/mx2_camera.c
> @@ -420,15 +420,17 @@ static irqreturn_t mx25_camera_irq(int irq_csi, void *data)
> struct mx2_camera_dev *pcdev = data;
> u32 status = readl(pcdev->base_csi + CSISR);
>
> - if (status & CSISR_DMA_TSF_FB1_INT)
> + writel(status, pcdev->base_csi + CSISR);
> +
> + if (!(status & (CSISR_DMA_TSF_FB1_INT | CSISR_DMA_TSF_FB2_INT)))
> + return IRQ_NONE;
> + else if (status & CSISR_DMA_TSF_FB1_INT)
> mx25_camera_frame_done(pcdev, 1, VIDEOBUF_DONE);
> else if (status & CSISR_DMA_TSF_FB2_INT)
> mx25_camera_frame_done(pcdev, 2, VIDEOBUF_DONE);
>
> /* FIXME: handle CSISR_RFF_OR_INT */
>
> - writel(status, pcdev->base_csi + CSISR);
> -
> return IRQ_HANDLED;
> }
I don't think this is correct. You should return IRQ_NONE if this is not
an interrupt from your device at all. In this case you don't have to ack
your interrupts, which, I presume, is what the write to CSISR is doing.
OTOH, if this is an interrupt from your device, but you're just not
interested in it, you should ack it and return IRQ_HANDLED. So, the
original behaviour was more correct, than what this your patch is doing.
The only improvement I can think of is, that you can return IRQ_NONE if
status is 0, but then you don't have to ack it.
Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
next prev parent reply other threads:[~2010-07-28 11:25 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-27 12:06 [PATCH 0/4] mx2_camera: mx25 fixes and enhancements Baruch Siach
2010-07-27 12:06 ` [PATCH 1/4] mx2_camera: fix a race causing NULL dereference Baruch Siach
2010-07-27 12:06 ` [PATCH 2/4] mx2_camera: return IRQ_NONE when doing nothing Baruch Siach
2010-07-28 6:53 ` Sascha Hauer
2010-07-28 7:27 ` Russell King - ARM Linux
2010-07-28 11:25 ` Guennadi Liakhovetski [this message]
2010-08-09 11:46 ` Baruch Siach
2010-07-27 12:06 ` [PATCH 3/4] mx2_camera: fix comment typo Baruch Siach
2010-07-27 12:06 ` [PATCH 4/4] mx2_camera: implement forced termination of active buffer for mx25 Baruch Siach
2010-08-27 9:07 ` Guennadi Liakhovetski
2010-08-29 7:56 ` Baruch Siach
2010-08-23 4:11 ` [PATCH 0/4] mx2_camera: mx25 fixes and enhancements Baruch Siach
2010-08-23 22:05 ` Guennadi Liakhovetski
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=Pine.LNX.4.64.1007281317400.23907@axis700.grange \
--to=g.liakhovetski@gmx.de \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox