gpiolib: acpi: Convert pin_index to be u16
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 9 Nov 2020 20:53:30 +0000 (22:53 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 16 Nov 2020 12:14:35 +0000 (14:14 +0200)
As specified by ACPI the pin index is 16-bit unsigned integer.
Define the variable, which holds it, accordingly.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/gpio/gpiolib-acpi.c

index c46fd51007d0167e0ed018f6cf6aae7068ed6410..a556e2ec0a39c4a32c36e0c424aa74a04f783495 100644 (file)
@@ -660,7 +660,7 @@ int acpi_gpio_update_gpiod_lookup_flags(unsigned long *lookupflags,
 struct acpi_gpio_lookup {
        struct acpi_gpio_info info;
        int index;
-       int pin_index;
+       u16 pin_index;
        bool active_low;
        struct gpio_desc *desc;
        int n;
@@ -676,7 +676,7 @@ static int acpi_populate_gpio_lookup(struct acpi_resource *ares, void *data)
        if (!lookup->desc) {
                const struct acpi_resource_gpio *agpio = &ares->data.gpio;
                bool gpioint = agpio->connection_type == ACPI_RESOURCE_GPIO_TYPE_INT;
-               int pin_index;
+               u16 pin_index;
 
                if (lookup->info.quirks & ACPI_GPIO_QUIRK_ONLY_GPIOIO && gpioint)
                        lookup->index++;
@@ -822,7 +822,7 @@ static struct gpio_desc *acpi_get_gpiod_by_index(struct acpi_device *adev,
                if (ret)
                        return ERR_PTR(ret);
 
-               dev_dbg(&adev->dev, "GPIO: _DSD returned %s %d %d %u\n",
+               dev_dbg(&adev->dev, "GPIO: _DSD returned %s %d %u %u\n",
                        dev_name(&lookup.info.adev->dev), lookup.index,
                        lookup.pin_index, lookup.active_low);
        } else {
@@ -1018,7 +1018,7 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,
        struct gpio_chip *chip = achip->chip;
        struct acpi_resource_gpio *agpio;
        struct acpi_resource *ares;
-       int pin_index = (int)address;
+       u16 pin_index = address;
        acpi_status status;
        int length;
        int i;
@@ -1041,7 +1041,7 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,
                return AE_BAD_PARAMETER;
        }
 
-       length = min(agpio->pin_table_length, (u16)(pin_index + bits));
+       length = min_t(u16, agpio->pin_table_length, pin_index + bits);
        for (i = pin_index; i < length; ++i) {
                int pin = agpio->pin_table[i];
                struct acpi_gpio_connection *conn;