[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACRpkdYLPWNQZgdFHVwLOZv+rS=bdERM9St5b0hVHTd_+ZJMKg@mail.gmail.com>
Date: Fri, 8 Apr 2016 11:43:12 +0200
From: Linus Walleij <linus.walleij@...aro.org>
To: Maxime Coquelin <mcoquelin.stm32@...il.com>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Jason Cooper <jason@...edaemon.net>,
Marc Zyngier <marc.zyngier@....com>,
Mark Rutland <mark.rutland@....com>,
Rob Herring <robh+dt@...nel.org>,
"linux-gpio@...r.kernel.org" <linux-gpio@...r.kernel.org>,
Arnd Bergmann <arnd@...db.de>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
Daniel Thompson <daniel.thompson@...aro.org>,
Bruno Herrera <bruherrera@...il.com>,
Lee Jones <lee.jones@...aro.org>
Subject: Re: [PATCH v2 6/9] pinctrl: Add IRQ support to STM32 gpios
On Thu, Mar 31, 2016 at 5:09 PM, Maxime Coquelin
<mcoquelin.stm32@...il.com> wrote:
> +static int stm32_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
> +{
> + struct stm32_pinctrl *pctl = dev_get_drvdata(chip->parent);
> + struct stm32_gpio_bank *bank = gpiochip_get_data(chip);
> + unsigned int irq;
> +
> + regmap_field_write(pctl->irqmux[offset], bank->range.id);
No. You must implement the irqchip and GPIO controllers to
be orthogonal, doing things like this creates a semantic that
assumes .to_irq() is always called before using the IRQ and
that is not guaranteed at all. A consumer may very well
use an interrupt right off the irqchip without this being called
first. All this function should do is translate a number. No
other semantics.
This needs to be done from the irqchip (sorry).
Yours,
Linus Walleij
Powered by blists - more mailing lists