Re: [PATCH 1/1] PINCTRL: Warn if direct IRQ GPIO set to output

From: eric ernst
Date: Thu May 29 2014 - 18:00:09 EST


On 14-05-29 06:44 AM, Linus Walleij wrote:
On Tue, May 27, 2014 at 9:26 PM, <eric.ernst@xxxxxxxxxxxxxxx> wrote:

From: Eric Ernst <eric.ernst@xxxxxxxxxxxxxxx>

For Baytrail, you should never set a GPIO set to direct_irq
to output mode. When direct_irq_en is set for a GPIO, it is
tied directly to an APIC internally, and making the pad output
does not make any sense. Assert a WARN() in the event this happens.

Signed-off-by: Eric Ernst <eric.ernst@xxxxxxxxxxxxxxx>
Can I get some ACK from the author's of this driver on Eric's patch?

Eric, you *are* aware of what the gpio_lock_as_irq() and
gpio_unlock_as_irq() in the .irq_request_resources are doing
right? Is this patch just some extra safety measure?

Yours,
Linus Walleij
Linus, thanks for the feedback.

I do see the usage for gpio_lock_as_irq() and gpio_unlock_as_irq(), though I'm not sure if this would help me in this scenario. I am adding an extra safety measure, as an attempt to check exactly how the GPIO pin was configured, possibly before kernel, before changing the direction to output.

In my situation, a device attached via GPIO will act as an IRQ, but also toggled as output during setup in order to communicate with the device (ugly device, i know). Specifically for this pincntrl device on Baytrail, we need to make sure that if the pin were ever to be used for IO, that direct IRQ is not set in its config register (ie - don't handle the IRQ via the APIC). This check and WARN is to look for that situation, and provide a caution to the user that what they're asking for isn't necessarily what they will be getting.
Thanks,
Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/