mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Lars Poeschel <poeschel@lemonage.de>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Tomasz Figa <tomasz.figa@gmail.com>,
	Lars Poeschel <larsi@wh2.tu-dresden.de>,
	Grant Likely <grant.likely@linaro.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ian.campbell@citrix.com>,
	galak@codeaurora.org, Pawel Moll <pawel.moll@arm.com>,
	Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
	Enric Balletbo i Serra <eballetbo@gmail.com>,
	"Jean-Christophe PLAGNIOL-VILLARD" <plagnioj@jcrosoft.com>,
	Santosh Shilimkar <santosh.shilimkar@ti.com>,
	Kevin Hilman <khilman@linaro.org>, Balaji T K <balajitk@ti.com>,
	Tony Lindgren <tony@atomide.com>,
	Jon Hunter <jgchunter@gmail.com>
Subject: Re: [PATCH v2] gpio: interrupt consistency check for OF GPIO IRQs
Date: Mon, 26 Aug 2013 12:30:50 +0200	[thread overview]
Message-ID: <201308261230.50243.poeschel@lemonage.de> (raw)
In-Reply-To: <5217BC9B.4060906@wwwdotorg.org>

On Friday 23 August 2013 at 21:48:43, Stephen Warren wrote:
> On 08/23/2013 03:40 AM, Lars Poeschel wrote:
> > On Thursday 22 August 2013 at 23:10:53, Stephen Warren wrote:
> >> On 08/21/2013 05:36 PM, Linus Walleij wrote:
> >>> On Thu, Aug 22, 2013 at 1:10 AM, Stephen Warren
> >>> <swarren@wwwdotorg.org> wrote: [Me]
> >>> 
> >>>>>> check if these in turn reference the interrupt-controller, and
> >>>>>> if they do, loop over the interrupts used by that child and
> >>>>>> perform gpio_request() and gpio_direction_input() on these,
> >>>>>> making them unreachable from the GPIO side.
> >>>> 
> >>>> What about bindings that require a GPIO to be specified, yet don't
> >>>> allow an IRQ to be specified, and the driver internally does
> >>>> perform gpio_to_irq() on it? I don't think one can detect that
> >>>> case.
> >>> 
> >>> This is still allowed. Consumers that prefer to have a GPIO
> >>> passed and convert it to IRQ by that call can still do so,
> >>> they will know what they're doing and will not cause the
> >>> double-command situation that we're trying to solve.
> >> 
> >> Why not? There are certainly drivers in the kernel which request a
> >> GPIO as both a GPIO and as an (dual-edge) interrupt, so that they
> >> can read the GPIO input whenever the IRQ goes off, in order to
> >> determine the pin state. This is safer against high-latency or lost
> >> interrupts.
> > 
> > This is the point! They REQUEST the GPIO. They can then do whatever
> > they like with this GPIO then, even additionally use it as interrupt.
> > In the devicetree case the interrupts are not requested. This is what
> > we are trying to address with the patch. The device using this
> > interrupt has no idea where this interrupt comes from. Is it a
> > gpio-interrupt or not? Does it have to request a gpio before using
> > this interrupt or not?
> 
> If the kernel automatically requests the GPIO because it's referenced as
> an interrupt then surely if the driver also requests it, then it will
> fail, because the GPIO is already requested. Or, is there an explicit
> check for that?

There is no explicit check, because it is not wanted! Drivers that only 
want the interrupt do not know that it is gpio-backed and therefore can not 
request it.
Drivers wanting to explicit use a gpio for interrupt, request the gpio in 
the device tree. They can then turn that gpio into an interrupt.

> Is the problem you're trying to solve really an actual problem? I'm not
> convinced it's necessary for the GPIO to show up as requested if the pin
> is used as an IRQ input?

It is definitely an actual problem. Please read the thread I already sent!
Surely it is not necessary for the GPIO to show up as requested but it does 
not harm it is even neat if it shows up. But it HAS to be requested so that 
no other entity can request it and change it's configuration i.e. turn it 
to an output.

  reply	other threads:[~2013-08-26 10:31 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-21 13:38 Lars Poeschel
2013-08-21 21:49 ` Tomasz Figa
2013-08-21 23:10   ` Stephen Warren
2013-08-21 23:27     ` Linus Walleij
2013-08-22 20:53       ` Stephen Warren
2013-08-23  9:51         ` Lars Poeschel
2013-08-23 18:38         ` Linus Walleij
2013-08-23 19:49           ` Stephen Warren
2013-08-29 18:51             ` Linus Walleij
2013-08-21 23:36     ` Linus Walleij
2013-08-22 21:10       ` Stephen Warren
2013-08-23  9:40         ` Lars Poeschel
2013-08-23 19:48           ` Stephen Warren
2013-08-26 10:30             ` Lars Poeschel [this message]
2013-08-23 18:45         ` Linus Walleij
2013-08-23 19:52           ` Stephen Warren
2013-08-23 19:55             ` Tomasz Figa
2013-08-23 20:55               ` Stephen Warren
2013-08-26 10:45             ` Lars Poeschel
2013-08-27 20:05               ` Stephen Warren
2013-08-29 19:00             ` Linus Walleij
2013-08-30 20:08               ` Stephen Warren
2013-09-02  9:43                 ` Lars Poeschel
2013-09-03 12:28                 ` Linus Walleij
2013-08-22  9:01     ` Lars Poeschel
2013-08-22 21:08       ` Stephen Warren
2013-08-22 22:30         ` Tomasz Figa
2013-08-22 13:16 ` Andreas Larsson
2013-08-26 10:56   ` Lars Poeschel
2013-08-26 11:29     ` Andreas Larsson
2013-08-26 14:04       ` Lars Poeschel
2013-08-27  6:06         ` Andreas Larsson

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=201308261230.50243.poeschel@lemonage.de \
    --to=poeschel@lemonage.de \
    --cc=balajitk@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=eballetbo@gmail.com \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=ian.campbell@citrix.com \
    --cc=javier.martinez@collabora.co.uk \
    --cc=jgchunter@gmail.com \
    --cc=khilman@linaro.org \
    --cc=larsi@wh2.tu-dresden.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=swarren@wwwdotorg.org \
    --cc=tomasz.figa@gmail.com \
    --cc=tony@atomide.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®