All of lore.kernel.org
 help / color / mirror / Atom feed
* Requesting false output GPIO as IRQ
@ 2019-02-26 10:01 Geert Uytterhoeven
  2019-02-27  9:29 ` Bartosz Golaszewski
  2019-03-01 14:45 ` Linus Walleij
  0 siblings, 2 replies; 3+ messages in thread
From: Geert Uytterhoeven @ 2019-02-26 10:01 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski
  Cc: Yoshihiro Shimoda, open list:GPIO SUBSYSTEM, Linux-Renesas

Hi Linus, Bartosz,

If request_irq() is called on an otherwise unused GPIO that was
incorrectly configured for output by the firmware, this fails with:

    gpio gpiochip2: (e6052000.gpio): gpiochip_lock_as_irq: tried to
flag a GPIO set as output for IRQ
    gpio gpiochip2: (e6052000.gpio): unable to lock HW IRQ 22 for IRQ
    genirq: Failed to request resources for 0-0020 (irq 142) on
irqchip e6052000.gpio

This happens since commit ad817297418539b8 ("gpio: rcar: Implement
.get_direction() callback"), as the (default) input state is changed to
output by reading the hardware state.  Without that callback, the code
just continues.

While I strongly agree the firmware should be fixed not to configure
random GPIOs as outputs, shouldn't Linux just override this, if the GPIO
is not marked in use (has not been requested)?

What is your opinion on this?
Thanks!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-03-01 14:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-26 10:01 Requesting false output GPIO as IRQ Geert Uytterhoeven
2019-02-27  9:29 ` Bartosz Golaszewski
2019-03-01 14:45 ` Linus Walleij

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.