From: linux@armlinux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] i2c: s3c2410: Properly handle interrupts of number 0
Date: Fri, 2 Mar 2018 12:19:29 +0000 [thread overview]
Message-ID: <20180302121929.GY9418@n2100.armlinux.org.uk> (raw)
In-Reply-To: <20180302114909.u6kqdszt3aew2io2@mwanda>
On Fri, Mar 02, 2018 at 02:49:09PM +0300, Dan Carpenter wrote:
> On Fri, Mar 02, 2018 at 11:19:31AM +0000, Russell King - ARM Linux wrote:
> > On Thu, Mar 01, 2018 at 09:34:44PM +0100, Krzysztof Kozlowski wrote:
> > > Interrupt number 0 (returned by platform_get_irq()) might be a valid IRQ
> > > so do not treat it as an error. If interrupt 0 was configured, the driver
> > > would exit the probe early, before finishing initialization, but with
> > > 0-exit status.
> >
> > The official position (as stated by Linus) is that interrupt zero is
> > not a valid interrupt for peripheral drivers (it may be valid within
> > architecture code for things like the x86 PIT, but nothing else.)
> >
> > You need to number your platform interrupts from one rather than zero.
> >
> > Note that there have been patches proposed to make platform_get_irq()
> > return an error rather than returning a value of zero, so changing
> > the driver in this way is not a good idea.
> >
>
> Those patches to make platform_get_irq() return error codes were merged
> 12 years ago in commit 305b3228f9ff ("[PATCH] driver core:
> platform_get_irq*(): return -ENXIO on error").
Rubbish. Please look at the commit you're quoting, it doesn't have
much to do with what I'm saying, and I think you're mis-remembering
on two counts.
The discussion came up recently (last November) about making
platform_get_irq() return an error rather than zero - in other words,
it will never return zero. This is entirely different from making
platform_get_irq() return -ENXIO when an error occurs (not finding
the resource.) This discussion was sparked by patch sets from
Arvind Yadav.
Further information can be found by looking up the discussions
around killing "NO_IRQ", particularly messages from Linus.
Secondly, the code today does:
int platform_get_irq(struct platform_device *dev, unsigned int num)
{
...
return r ? r->start : -ENXIO;
}
So if the IRQ resource is not found, then yes, it will return -ENXIO.
If on the other hand the resource is found, then it will return
whatever is found in r->start, which can be zero.
As stated, IRQ 0 shall not be taken by drivers to be a valid
interrupt.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up
next prev parent reply other threads:[~2018-03-02 12:19 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-01 20:34 [PATCH] i2c: s3c2410: Properly handle interrupts of number 0 Krzysztof Kozlowski
2018-03-02 10:29 ` Wolfram Sang
2018-03-02 11:00 ` Dan Carpenter
2018-03-02 11:02 ` Dan Carpenter
2018-03-02 11:08 ` Wolfram Sang
2018-03-02 11:19 ` Russell King - ARM Linux
2018-03-02 11:49 ` Dan Carpenter
2018-03-02 12:19 ` Russell King - ARM Linux [this message]
2018-03-02 12:26 ` Dan Carpenter
2018-03-02 12:34 ` Russell King - ARM Linux
2018-03-02 12:46 ` Wolfram Sang
2018-03-02 12:59 ` Russell King - ARM Linux
2018-03-02 13:58 ` Wolfram Sang
2018-03-02 14:09 ` Dan Carpenter
2018-03-02 15:32 ` Russell King - ARM Linux
2018-03-02 16:28 ` Mark Rutland
2018-03-03 16:25 ` Andy Shevchenko
2018-03-03 18:36 ` Russell King - ARM Linux
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=20180302121929.GY9418@n2100.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--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