@@ -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