From: Tony Lindgren <tony@atomide.com>
To: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>,
Kevin Hilman <khilman@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>,
Stephen Warren <swarren@wwwdotorg.org>,
Lars Poeschel <larsi@wh2.tu-dresden.de>,
Grant Likely <grant.likely@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ian.campbell@citrix.com>,
Kumar Gala <galak@codeaurora.org>,
Pawel Moll <pawel.moll@arm.com>,
Tomasz Figa <tomasz.figa@gmail.com>,
Enric Balletbo i Serra <eballetbo@gmail.com>,
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
Balaji T K <balajitk@ti.com>, Jon Hunter <jgchunter@gmail.com>,
linux-gpio@vger.kernel.org, linux-omap@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
r.sricharan@ti.com, holler@ahsoftware.de
Subject: Re: [RFC v2] gpio/omap: auto-setup a GPIO when used as an IRQ
Date: Tue, 24 Sep 2013 08:40:48 -0700 [thread overview]
Message-ID: <20130924154048.GM2684@atomide.com> (raw)
In-Reply-To: <1380009480-4975-1-git-send-email-javier.martinez@collabora.co.uk>
* Javier Martinez Canillas <javier.martinez@collabora.co.uk> [130924 01:06]:
> The OMAP GPIO controller HW requires a pin to be configured in GPIO
> input mode in order to operate as an interrupt input. Since drivers
> should not be aware of whether an interrupt pin is also a GPIO or not,
> the HW should be fully configured/enabled as an IRQ if a driver solely
> uses IRQ APIs such as request_irq(), and never calls any GPIO-related
> APIs. As such, add the missing HW setup to the OMAP GPIO controller's
> irq_chip driver.
>
> Since this bypasses the GPIO subsystem we have to ensure that another
> caller won't be able to request the same GPIO pin that is used as an
> IRQ and set its direction as output. Requesting the GPIO and setting
> its direction as input is allowed though.
Also please mention the regression that this fixes. So far we know
that smsc911x for tobi and igep boards in mainline, and also the
MMC card detect for omap4 boards.
> --- a/drivers/gpio/gpio-omap.c
> +++ b/drivers/gpio/gpio-omap.c
> @@ -63,6 +63,7 @@ struct gpio_bank {
> struct gpio_chip chip;
> struct clk *dbck;
> u32 mod_usage;
> + u32 irq_usage;
> u32 dbck_enable_mask;
> bool dbck_enabled;
> struct device *dev;
> @@ -86,6 +87,9 @@ struct gpio_bank {
> #define GPIO_BIT(bank, gpio) (1 << GPIO_INDEX(bank, gpio))
> #define GPIO_MOD_CTRL_BIT BIT(0)
>
> +#define BANK_USED(bank) (bank->mod_usage || bank->irq_usage)
> +#define LINE_USED(line, offset) (line & (1 << offset))
Hmm this patch is hard to read, maybe break it into two patches?
First you could do a patch to prepare thing by introducing
BANK_USED and LINE_USED.
> +static int gpio_is_input(struct gpio_bank *bank, int mask)
> +{
> + void __iomem *reg = bank->base + bank->regs->direction;
> +
> + return __raw_readl(reg) & mask;
> +}
And also move gpio_is_input() around in the first patch.
Then the second patch for the fix would probably be much
easier to read.
Regards,
Tony
next prev parent reply other threads:[~2013-09-24 15:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-24 7:58 [RFC v2] gpio/omap: auto-setup a GPIO when used as an IRQ Javier Martinez Canillas
2013-09-24 15:40 ` Tony Lindgren [this message]
2013-09-24 15:45 ` Javier Martinez Canillas
2013-09-24 15:45 ` Balaji T K
[not found] ` <5241B3B7.5070701-l0cyMroinI0@public.gmane.org>
2013-09-24 15:48 ` Santosh Shilimkar
[not found] ` <5241B465.5050604-l0cyMroinI0@public.gmane.org>
2013-09-24 15:58 ` Tony Lindgren
2013-09-24 15:56 ` Tony Lindgren
[not found] ` <1380009480-4975-1-git-send-email-javier.martinez-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2013-09-26 23:18 ` Stephen Warren
2013-09-27 7:35 ` Javier Martinez Canillas
[not found] ` <52453545.3090504-ZGY8ohtN/8pPYcu2f3hruQ@public.gmane.org>
2013-09-27 18:46 ` George Cherian
2013-09-27 20:36 ` Aaro Koskinen
2013-09-30 1:23 ` Paul Walmsley
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=20130924154048.GM2684@atomide.com \
--to=tony@atomide.com \
--cc=balajitk@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=eballetbo@gmail.com \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=holler@ahsoftware.de \
--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=linux-omap@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=r.sricharan@ti.com \
--cc=santosh.shilimkar@ti.com \
--cc=swarren@wwwdotorg.org \
--cc=tomasz.figa@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).