]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: int3472: Fix skl_int3472_handle_gpio_resources() return value
authorHans de Goede <hdegoede@redhat.com>
Mon, 9 Dec 2024 22:05:21 +0000 (23:05 +0100)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 10 Dec 2024 13:41:25 +0000 (15:41 +0200)
The INT3472 code never wants a copy of the ACPI resource to be added
to the list-head passed to acpi_dev_get_resources().

Make skl_int3472_handle_gpio_resources() always return -errno or 1.

Also update the inaccurate comment about the return value.
skl_int3472_handle_gpio_resources() was already returning 1 in the case
of not a GPIO resource or invalid _DSM return and not -EINVAL / -ENODEV
as the comment claimed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20241209220522.25288-3-hdegoede@redhat.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/int3472/discrete.c

index 6e2b81da2d68ae3f02e762902caee503e220aed9..31015ebe20d89482d63eb242637c9bf46764c4fe 100644 (file)
@@ -178,11 +178,11 @@ static void int3472_get_func_and_polarity(u8 type, const char **func, u32 *polar
  * to create clocks and regulators via the usual frameworks.
  *
  * Return:
- * * 1         - To continue the loop
- * * 0         - When all resources found are handled properly.
- * * -EINVAL   - If the resource is not a GPIO IO resource
- * * -ENODEV   - If the resource has no corresponding _DSM entry
- * * -Other    - Errors propagated from one of the sub-functions.
+ * * 1         - Continue the loop without adding a copy of the resource to
+ * *             the list passed to acpi_dev_get_resources()
+ * * 0         - Continue the loop after adding a copy of the resource to
+ * *             the list passed to acpi_dev_get_resources()
+ * * -errno    - Error, break loop
  */
 static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
                                             void *data)
@@ -289,7 +289,8 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
        if (ret < 0)
                return dev_err_probe(int3472->dev, ret, err_msg);
 
-       return ret;
+       /* Tell acpi_dev_get_resources() to not make a copy of the resource */
+       return 1;
 }
 
 static int skl_int3472_parse_crs(struct int3472_discrete_device *int3472)