All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Holler <holler@ahsoftware.de>
To: joelf@ti.com
Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
	Linus Walleij <linus.walleij@linaro.org>,
	Grant Likely <grant.likely@linaro.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Linux-OMAP <linux-omap@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	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] RFC: interrupt consistency check for OF GPIO IRQs
Date: Wed, 11 Sep 2013 09:16:43 +0200	[thread overview]
Message-ID: <523018DB.7080004@ahsoftware.de> (raw)
In-Reply-To: <52301655.6080801@ahsoftware.de>

Am 11.09.2013 09:05, schrieb Alexander Holler:
> Am 10.09.2013 17:00, schrieb Joel Fernandes:
>
>> I think your initial patch is much better than fixing up DT but then I
>> may be
>> missing other problems with your patch that Linus's patch addresses.
>
> The initial patch had the problem that it not only did introduce
> irq-mappings for only those gpios which are marked as IRQs, but it
> requested those gpios too and preconfigured them
>
> And that breaks every driver which uses gpios for IRQs.
>
> To summarize what happens if a driver uses a gpio as irq:
>
> gpio_request() // This works only if the gpio was not requested before
> gpio_direction_input()
> gpio_to_irq() // This needs an irq-mapping
> request_threaded_irq()
>
> So I would suggest multiple steps to change that:
>
> 1. Create a mapping for every gpio found in DT (or all gpios if no DT is
> used). I think that is what Linus patch does (sorry, I haven't really
> followed this thread and didn't look in deep at the patch).
>
> 2. Implement gpio_request_for_irq()
> This would just be a small macro for gpio_request(); gpio_direction_input()
>
> 3. Change all drivers which do use gpio_to_irq() to use
> gpio_request_for_irq() instead of gpio_request() and
> gpio_direction_input(). This will end up with a big series of more or
> less trivial patches (I count 677 occurences of gpio_to_irq) and might
> be splitted.
>
> 4. request gpios and set them to input when a gpio is marked as an IRQ
> in the DT and DT is used. Change gpio_rquest_for_irq() to a NOP if DT is
> used or leave it as it is for the none-dt case.

But I still see a possible problem with requesting a gpio (centralized) 
if it is marked as IRQ in DT: it does this always.

I'm not sure, but there might be cases where this isn't wanted. Just 
that a GPIO is marked as IRQ in the DT for one driver, doesn't mean that 
this driver will be really used (and something else might use the GPIO 
instead).

Regards,

Alexander Holler


WARNING: multiple messages have this Message-ID (diff)
From: holler@ahsoftware.de (Alexander Holler)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] RFC: interrupt consistency check for OF GPIO IRQs
Date: Wed, 11 Sep 2013 09:16:43 +0200	[thread overview]
Message-ID: <523018DB.7080004@ahsoftware.de> (raw)
In-Reply-To: <52301655.6080801@ahsoftware.de>

Am 11.09.2013 09:05, schrieb Alexander Holler:
> Am 10.09.2013 17:00, schrieb Joel Fernandes:
>
>> I think your initial patch is much better than fixing up DT but then I
>> may be
>> missing other problems with your patch that Linus's patch addresses.
>
> The initial patch had the problem that it not only did introduce
> irq-mappings for only those gpios which are marked as IRQs, but it
> requested those gpios too and preconfigured them
>
> And that breaks every driver which uses gpios for IRQs.
>
> To summarize what happens if a driver uses a gpio as irq:
>
> gpio_request() // This works only if the gpio was not requested before
> gpio_direction_input()
> gpio_to_irq() // This needs an irq-mapping
> request_threaded_irq()
>
> So I would suggest multiple steps to change that:
>
> 1. Create a mapping for every gpio found in DT (or all gpios if no DT is
> used). I think that is what Linus patch does (sorry, I haven't really
> followed this thread and didn't look in deep at the patch).
>
> 2. Implement gpio_request_for_irq()
> This would just be a small macro for gpio_request(); gpio_direction_input()
>
> 3. Change all drivers which do use gpio_to_irq() to use
> gpio_request_for_irq() instead of gpio_request() and
> gpio_direction_input(). This will end up with a big series of more or
> less trivial patches (I count 677 occurences of gpio_to_irq) and might
> be splitted.
>
> 4. request gpios and set them to input when a gpio is marked as an IRQ
> in the DT and DT is used. Change gpio_rquest_for_irq() to a NOP if DT is
> used or leave it as it is for the none-dt case.

But I still see a possible problem with requesting a gpio (centralized) 
if it is marked as IRQ in DT: it does this always.

I'm not sure, but there might be cases where this isn't wanted. Just 
that a GPIO is marked as IRQ in the DT for one driver, doesn't mean that 
this driver will be really used (and something else might use the GPIO 
instead).

Regards,

Alexander Holler

  reply	other threads:[~2013-09-11  7:17 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-29 12:36 [PATCH] RFC: interrupt consistency check for OF GPIO IRQs Linus Walleij
2013-07-30  4:30 ` Grant Likely
2013-07-30  4:30   ` Grant Likely
2013-07-30  4:30   ` Grant Likely
2013-07-30 23:44   ` Linus Walleij
2013-07-30 23:44     ` Linus Walleij
2013-07-30 23:44     ` Linus Walleij
2013-07-31  8:35     ` Javier Martinez Canillas
2013-07-31  8:35       ` Javier Martinez Canillas
2013-07-31  8:35       ` Javier Martinez Canillas
2013-08-02  9:57       ` Alexander Holler
2013-08-02  9:57         ` Alexander Holler
2013-08-02  9:57         ` Alexander Holler
2013-08-02 15:35         ` Alexander Holler
2013-08-02 15:35           ` Alexander Holler
2013-08-02 15:35           ` Alexander Holler
2013-08-03  7:23           ` Alexander Holler
2013-08-03  7:23             ` Alexander Holler
2013-08-03  7:23             ` Alexander Holler
2013-09-10  7:00       ` Joel Fernandes
2013-09-10  7:00         ` Joel Fernandes
2013-09-10  7:00         ` Joel Fernandes
2013-09-10 13:17         ` Javier Martinez Canillas
2013-09-10 13:17           ` Javier Martinez Canillas
2013-09-10 13:17           ` Javier Martinez Canillas
2013-09-10 15:00           ` Joel Fernandes
2013-09-10 15:00             ` Joel Fernandes
2013-09-10 15:00             ` Joel Fernandes
2013-09-10 15:48             ` Javier Martinez Canillas
2013-09-10 15:48               ` Javier Martinez Canillas
2013-09-10 15:48               ` Javier Martinez Canillas
2013-09-10 16:25               ` Joel Fernandes
2013-09-10 16:25                 ` Joel Fernandes
2013-09-10 16:25                 ` Joel Fernandes
2013-09-11  7:05             ` Alexander Holler
2013-09-11  7:05               ` Alexander Holler
2013-09-11  7:05               ` Alexander Holler
2013-09-11  7:16               ` Alexander Holler [this message]
2013-09-11  7:16                 ` Alexander Holler
2013-09-11  7:16                 ` Alexander Holler
2013-09-11  7:30                 ` Alexander Holler
2013-09-11  7:30                   ` Alexander Holler
2013-09-11  7:30                   ` Alexander Holler
2013-09-11  7:36                   ` Alexander Holler
2013-09-11  7:36                     ` Alexander Holler
2013-09-11  7:36                     ` Alexander Holler
2013-08-13  9:52     ` Lars Poeschel
2013-08-13  9:52       ` Lars Poeschel
2013-08-13  9:52       ` Lars Poeschel
2013-08-19 22:04     ` Laurent Pinchart
2013-08-19 22:04       ` Laurent Pinchart
2013-08-19 22:04       ` Laurent Pinchart
2013-08-21 22:02       ` Linus Walleij
2013-08-21 22:02         ` Linus Walleij
2013-08-21 22:02         ` Linus Walleij
2013-09-06 15:32         ` Laurent Pinchart
2013-09-06 15:32           ` Laurent Pinchart
2013-09-06 15:32           ` Laurent Pinchart
2013-09-11 15:30         ` Alexander Holler
2013-09-11 15:30           ` Alexander Holler
2013-09-11 15:30           ` Alexander Holler
2013-09-11 16:14           ` Javier Martinez Canillas
2013-09-11 16:14             ` Javier Martinez Canillas
2013-09-11 16:14             ` Javier Martinez Canillas
2013-09-11 17:42             ` Alexander Holler
2013-09-11 17:42               ` Alexander Holler
2013-09-11 17:42               ` Alexander Holler
2013-09-12  8:55               ` Alexander Holler
2013-09-12  8:55                 ` Alexander Holler
2013-09-12  8:55                 ` Alexander Holler
2013-09-12 10:11                 ` Javier Martinez Canillas
2013-09-12 10:11                   ` Javier Martinez Canillas
2013-09-12 10:11                   ` Javier Martinez Canillas
2013-09-12 10:28                   ` Alexander Holler
2013-09-12 10:28                     ` Alexander Holler
2013-09-12 10:28                     ` Alexander Holler
2013-09-12 11:09                     ` Alexander Holler
2013-09-12 11:09                       ` Alexander Holler
2013-09-12 11:09                       ` Alexander Holler
2013-09-12 11:26                       ` Alexander Holler
2013-09-12 11:26                         ` Alexander Holler
2013-09-12 11:26                         ` Alexander Holler
2013-09-12 11:37                         ` Alexander Holler
2013-09-12 11:37                           ` Alexander Holler
2013-09-12 11:37                           ` Alexander Holler
2013-09-12 15:19                           ` Stephen Warren
2013-09-12 15:19                             ` Stephen Warren
2013-09-12 15:19                             ` Stephen Warren
2013-09-12 15:57                             ` Alexander Holler
2013-09-12 15:57                               ` Alexander Holler
2013-09-12 15:57                               ` Alexander Holler
2013-09-18  0:36                               ` Grant Likely
2013-09-18  0:36                                 ` Grant Likely
2013-09-18  0:36                                 ` Grant Likely
2013-10-20 12:41                                 ` Laurent Pinchart
2013-10-20 12:41                                   ` Laurent Pinchart
2013-10-20 12:41                                   ` Laurent Pinchart
2013-10-20 15:51                                   ` Tony Lindgren
2013-10-20 15:51                                     ` Tony Lindgren
2013-10-20 15:51                                     ` Tony Lindgren
2013-10-20 21:35                                   ` Stephen Warren
2013-10-20 21:35                                     ` Stephen Warren
2013-10-20 21:35                                     ` Stephen Warren
2013-10-21 23:26                                     ` Laurent Pinchart
2013-10-21 23:26                                       ` Laurent Pinchart
2013-10-21 23:26                                       ` Laurent Pinchart

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=523018DB.7080004@ahsoftware.de \
    --to=holler@ahsoftware.de \
    --cc=balajitk@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=eballetbo@gmail.com \
    --cc=grant.likely@linaro.org \
    --cc=javier.martinez@collabora.co.uk \
    --cc=jgchunter@gmail.com \
    --cc=joelf@ti.com \
    --cc=khilman@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=plagnioj@jcrosoft.com \
    --cc=santosh.shilimkar@ti.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 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.