Skip to content

Commit 4fa4c49

Browse files
committed
gpiolib: acpi: Extract __acpi_find_gpio() helper
We want to reuse it later on in the code. In particular, it helps to clean up the users of acpi_dev_gpio_irq_wake_get_by(). Acked-by: Mika Westerberg <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]>
1 parent 2d485d4 commit 4fa4c49

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

drivers/gpio/gpiolib-acpi.c

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -945,14 +945,11 @@ static bool acpi_can_fallback_to_crs(struct acpi_device *adev,
945945
return con_id == NULL;
946946
}
947947

948-
struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
949-
const char *con_id,
950-
unsigned int idx,
951-
enum gpiod_flags *dflags,
952-
unsigned long *lookupflags)
948+
static struct gpio_desc *
949+
__acpi_find_gpio(struct fwnode_handle *fwnode, const char *con_id, unsigned int idx,
950+
struct acpi_gpio_info *info)
953951
{
954952
struct acpi_device *adev = to_acpi_device_node(fwnode);
955-
struct acpi_gpio_info info;
956953
struct gpio_desc *desc;
957954
char propname[32];
958955
int i;
@@ -969,10 +966,10 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
969966

970967
if (adev)
971968
desc = acpi_get_gpiod_by_index(adev,
972-
propname, idx, &info);
969+
propname, idx, info);
973970
else
974971
desc = acpi_get_gpiod_from_data(fwnode,
975-
propname, idx, &info);
972+
propname, idx, info);
976973
if (PTR_ERR(desc) == -EPROBE_DEFER)
977974
return ERR_CAST(desc);
978975

@@ -985,11 +982,28 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
985982
if (!adev || !acpi_can_fallback_to_crs(adev, con_id))
986983
return ERR_PTR(-ENOENT);
987984

988-
desc = acpi_get_gpiod_by_index(adev, NULL, idx, &info);
985+
desc = acpi_get_gpiod_by_index(adev, NULL, idx, info);
989986
if (IS_ERR(desc))
990987
return desc;
991988
}
992989

990+
return desc;
991+
}
992+
993+
struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
994+
const char *con_id,
995+
unsigned int idx,
996+
enum gpiod_flags *dflags,
997+
unsigned long *lookupflags)
998+
{
999+
struct acpi_device *adev = to_acpi_device_node(fwnode);
1000+
struct acpi_gpio_info info;
1001+
struct gpio_desc *desc;
1002+
1003+
desc = __acpi_find_gpio(fwnode, con_id, idx, &info);
1004+
if (IS_ERR(desc))
1005+
return desc;
1006+
9931007
if (info.gpioint &&
9941008
(*dflags == GPIOD_OUT_LOW || *dflags == GPIOD_OUT_HIGH)) {
9951009
dev_dbg(&adev->dev, "refusing GpioInt() entry when doing GPIOD_OUT_* lookup\n");

0 commit comments

Comments
 (0)