Re: [PATCH v2 6/7] gpio / ACPI: get rid of acpi_gpio.h

Alex Courbot
2013-11-25T08:51:12Z

On 11/25/2013 05:54 PM, Mika Westerberg wrote:
> On Sat, Nov 23, 2013 at 06:21:03PM +0900, Alexandre Courbot wrote:
>> On Fri, Nov 22, 2013 at 9:14 PM, Mika Westerberg
>> <mika.westerberg@linux.intel.com> wrote:
>>> Now that all users of acpi_gpio.h have been moved to user either the GPIO
>>
>> s/user/use
>
> OK.
>
>>
>>> descriptor interface or to the internal gpiolib.h we can get rid of
>>
>> gpiolib.h will also need to be renamed if you follow my suggestion below.
>>
>>> acpi_gpio.h entirely.
>>>
>>> Once this is done the only interface to get GPIOs to drivers enumerated
>>> from ACPI namespace is the descriptor based interface.
>>
>> Oh, do I like this. :)
>>
>>>
>>> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
>>> ---
>>> drivers/gpio/gpiolib-acpi.c | 4 +++-
>>> drivers/gpio/gpiolib.c | 1 -
>>> drivers/gpio/gpiolib.h | 23 +++++++++++++++++++++++
>>> include/linux/acpi_gpio.h | 45 ---------------------------------------------
>>> 4 files changed, 26 insertions(+), 47 deletions(-)
>>> delete mode 100644 include/linux/acpi_gpio.h
>>>
>>> diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
>>> index cb2da66fbbfe..6c158d9a6efa 100644
>>> --- a/drivers/gpio/gpiolib-acpi.c
>>> +++ b/drivers/gpio/gpiolib-acpi.c
>>> @@ -12,11 +12,13 @@
>>>
>>> #include <linux/errno.h>
>>> #include <linux/gpio/consumer.h>
>>> +#include <linux/gpio/driver.h>
>>> #include <linux/export.h>
>>> -#include <linux/acpi_gpio.h>
>>> #include <linux/acpi.h>
>>> #include <linux/interrupt.h>
>>>
>>> +#include "gpiolib.h"
>>> +
>>> struct acpi_gpio_evt_pin {
>>> struct list_head node;
>>> acpi_handle *evt_handle;
>>> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
>>> index 70abccf0d144..a6b82413c290 100644
>>> --- a/drivers/gpio/gpiolib.c
>>> +++ b/drivers/gpio/gpiolib.c
>>> @@ -10,7 +10,6 @@
>>> #include <linux/seq_file.h>
>>> #include <linux/gpio.h>
>>> #include <linux/of_gpio.h>
>>> -#include <linux/acpi_gpio.h>
>>> #include <linux/idr.h>
>>> #include <linux/slab.h>
>>> #include <linux/acpi.h>
>>> diff --git a/drivers/gpio/gpiolib.h b/drivers/gpio/gpiolib.h
>>> index 2ed23ab8298c..82be586c1f90 100644
>>> --- a/drivers/gpio/gpiolib.h
>>> +++ b/drivers/gpio/gpiolib.h
>>> @@ -12,12 +12,35 @@
>>> #ifndef GPIOLIB_H
>>> #define GPIOLIB_H
>>>
>>> +#include <linux/err.h>
>>> +#include <linux/device.h>
>>> +
>>> +/**
>>> + * struct acpi_gpio_info - ACPI GPIO specific information
>>> + * @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
>>> + * @active_low: in case of @gpioint, the pin is active low
>>> + */
>>> +struct acpi_gpio_info {
>>> + bool gpioint;
>>> + bool active_low;
>>> +};
>>> +
>>> #ifdef CONFIG_ACPI
>>> void acpi_gpiochip_add(struct gpio_chip *chip);
>>> void acpi_gpiochip_remove(struct gpio_chip *chip);
>>> +
>>> +struct gpio_desc *acpi_get_gpiod_by_index(struct device *dev, int index,
>>> + struct acpi_gpio_info *info);
>>> #else
>>> static inline void acpi_gpiochip_add(struct gpio_chip *chip) { }
>>> static inline void acpi_gpiochip_remove(struct gpio_chip *chip) { }
>>> +
>>> +static inline struct gpio_desc *
>>> +acpi_get_gpiod_by_index(struct device *dev, int index,
>>> + struct acpi_gpio_info *info)
>>> +{
>>> + return ERR_PTR(-ENOSYS);
>>> +}
>>> #endif
>>
>> Since this header contains purely ACPI-related declarations so far, I wonder
>> if it should not be renamed acpi.h?
>
> Well, for now it contains only ACPI related stuff but once you guys start
> tearing DT interfaces away from drivers, this header is expected to grow :)
>
> So idea is to have gpiolib internal/private header where we can add stuff
> taht is not going to be exported to drivers.

I just wondered if these headers should not be split by GPIO providers,
but if you prefer it that way I'm fine with it too. We can move stuff
later if needed.

Acked-by: Alexandre Courbot <acourbot@nvidia.com>