aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib-acpi.c
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2014-08-19 13:06:09 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-08-29 02:58:34 -0400
commitabdc08a3a263a20e49534a36291d657bf53dda5b (patch)
treee26e4f6c9f26f8d7dda2415b0e9ee0b00b03a331 /drivers/gpio/gpiolib-acpi.c
parente46cf32ced90d00972d5c3d9322cdb848d183338 (diff)
gpio: change gpiochip_request_own_desc() prototype
The current prototype of gpiochip_request_own_desc() requires to obtain a pointer to a descriptor. This is in contradiction to all other GPIO request schemes, and imposes an extra step of obtaining a descriptor to drivers. Most drivers actually cannot even perform that step since the function that does it (gpichip_get_desc()) is gpiolib-private. Change gpiochip_request_own_desc() to return a descriptor from a (chip, hwnum) tuple and update users of this function (currently gpiolib-acpi only). Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpiolib-acpi.c')
-rw-r--r--drivers/gpio/gpiolib-acpi.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 84540025aa08..f9103e72e2a4 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -145,14 +145,8 @@ static acpi_status acpi_gpiochip_request_interrupt(struct acpi_resource *ares,
145 if (!handler) 145 if (!handler)
146 return AE_BAD_PARAMETER; 146 return AE_BAD_PARAMETER;
147 147
148 desc = gpiochip_get_desc(chip, pin); 148 desc = gpiochip_request_own_desc(chip, pin, "ACPI:Event");
149 if (IS_ERR(desc)) { 149 if (IS_ERR(desc)) {
150 dev_err(chip->dev, "Failed to get GPIO descriptor\n");
151 return AE_ERROR;
152 }
153
154 ret = gpiochip_request_own_desc(desc, "ACPI:Event");
155 if (ret) {
156 dev_err(chip->dev, "Failed to request GPIO\n"); 150 dev_err(chip->dev, "Failed to request GPIO\n");
157 return AE_ERROR; 151 return AE_ERROR;
158 } 152 }
@@ -420,22 +414,14 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,
420 } 414 }
421 } 415 }
422 if (!found) { 416 if (!found) {
423 int ret; 417 desc = gpiochip_request_own_desc(chip, pin,
424 418 "ACPI:OpRegion");
425 desc = gpiochip_get_desc(chip, pin);
426 if (IS_ERR(desc)) { 419 if (IS_ERR(desc)) {
427 status = AE_ERROR; 420 status = AE_ERROR;
428 mutex_unlock(&achip->conn_lock); 421 mutex_unlock(&achip->conn_lock);
429 goto out; 422 goto out;
430 } 423 }
431 424
432 ret = gpiochip_request_own_desc(desc, "ACPI:OpRegion");
433 if (ret) {
434 status = AE_ERROR;
435 mutex_unlock(&achip->conn_lock);
436 goto out;
437 }
438
439 switch (agpio->io_restriction) { 425 switch (agpio->io_restriction) {
440 case ACPI_IO_RESTRICT_INPUT: 426 case ACPI_IO_RESTRICT_INPUT:
441 gpiod_direction_input(desc); 427 gpiod_direction_input(desc);