On Wed, 2017-11-08 at 19:03 +0200, Mika Westerberg wrote: > On Wed, Nov 08, 2017 at 06:35:46PM +0200, Andy Shevchenko wrote: > > +Cc: Mika > > > > On Sat, 2017-11-04 at 03:20 +0000, Jonathan Cameron wrote: > > > On Fri, 3 Nov 2017 15:03:38 +0200 > > > Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > > > > > > With the new more strict ACPI gpio code the DSDT's IoRestriction > > > > flags > > > > are honored on gpiod_get(), but in some DSDT's it is wrong, so > > > > explicitly call gpiod_direction_input() on the IRQ GPIO if > > > > necessary. > > > > > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxx > > > > m> > > > > > > Again, I really really don't like filling driver code with fixes > > > for broken firmware. I appreciate we have to cope with this, but > > > it does rather seem like this should be moved into the core code > > > for say gpiod_get_irq. > > > > I would love to fix in general, though it looks not so trivial: > > > > - gpiod_get() doesn't know if GPIO is going to be used as IRQ > > - gpiod_to_irq() doesn't know if descriptor in question comes from > > GpioIo() ACPI resource > > One idea is to allow this strict mode to be relaxed by drivers perhaps > by passing quirks through struct acpi_gpio_mapping: > > static const struct acpi_gpio_mapping acpi_foo_gpios[] = { > /* > * This platform has a bug in ACPI GPIO description making IRQ > * GPIO to be output only. Ask the GPIO core to ignore this > * limit. > */ > { "foobar-gpios", &foobar_gpios, 1, > ACPI_QUIRK_IGNORE_IO_RESTRICTION }, > {}, > }; > > or something like that. Not sure if I missed something obvious, > though. Patch is sent, though I forgot to add you to Cc list. -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html