On Thu, Mar 23, 2017 at 09:46:10PM +0200, Andy Shevchenko wrote:
> Currently GPIO ACPI library provides an API to get a GPIO resources
> (IO or interrupt) from ACPI tables for the individual drivers.
> 
> This library has few flaws which makes some devices not working:
>  - the library allows to abuse ACPI by using a _CRS fallback mechanism
>  - the library neglects flags of the resource
> 
> In this series:
>  - the _CRS fallback is forbidden
>  - the pin configuration follows what firmware wants to
>  - the documentation is updated in order to clarify corner cases
> 
> After this series it's possible to use GPIO pins for input (interrupt)
> which were configured as output by BIOS by some reason. It's a crucial
> functionality for IoT open connected boards where user may choose any of
> available pin for almost any of available function, including GPIO input
> (interrupt).
> 
> Current bad behaviour was first reported by Jarkko Nikula few months ago.
> 
> Andy Shevchenko (8):
>   gpiolib: Export gpiod_configure_flags() to internal users
>   gpio: acpi: Align acpi_find_gpio() with DT version
>   gpio: acpi: Do sanity check for GpioInt in acpi_find_gpio()
>   gpio: acpi: Even more tighten up ACPI GPIO lookups
>   gpio: acpi: Synchronize acpi_find_gpio() and acpi_gpio_count()
>   gpio: acpi: Explain how to get GPIO descriptors in ACPI case
>   gpio: acpi: Factor out acpi_gpio_to_gpiod_flags() helper
>   gpio: acpi: Override GPIO initialization flags
> 
>  Documentation/acpi/gpio-properties.txt |  60 ++++++++++++
>  drivers/gpio/gpiolib-acpi.c            | 162 
> +++++++++++++++++++--------------
>  drivers/gpio/gpiolib.c                 |  10 +-
>  drivers/gpio/gpiolib.h                 |  17 +++-
>  4 files changed, 176 insertions(+), 73 deletions(-)

Really nice work!

For the whole series,

Reviewed-by: Mika Westerberg <mika.westerb...@linux.intel.com>

Reply via email to