Unverified Commit fc22b06f authored by Sakari Ailus's avatar Sakari Ailus Committed by Ilpo Järvinen
Browse files

platform/x86: int3472: Use correct type for "polarity", call it gpio_flags



Struct gpiod_lookup flags field's type is unsigned long. Thus use unsigned
long for values to be assigned to that field. Similarly, also call the
field gpio_flags which it really is.

Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20250211072841.7713-2-sakari.ailus@linux.intel.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 9cff907c
Loading
Loading
Loading
Loading
+20 −19
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ static void skl_int3472_log_sensor_module_name(struct int3472_discrete_device *i

static int skl_int3472_fill_gpiod_lookup(struct gpiod_lookup *table_entry,
					 struct acpi_resource_gpio *agpio,
					 const char *func, u32 polarity)
					 const char *func, unsigned long gpio_flags)
{
	char *path = agpio->resource_source.string_ptr;
	struct acpi_device *adev;
@@ -70,14 +70,14 @@ static int skl_int3472_fill_gpiod_lookup(struct gpiod_lookup *table_entry,
	if (!adev)
		return -ENODEV;

	*table_entry = GPIO_LOOKUP(acpi_dev_name(adev), agpio->pin_table[0], func, polarity);
	*table_entry = GPIO_LOOKUP(acpi_dev_name(adev), agpio->pin_table[0], func, gpio_flags);

	return 0;
}

static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int3472,
					  struct acpi_resource_gpio *agpio,
					  const char *func, u32 polarity)
					  const char *func, unsigned long gpio_flags)
{
	int ret;

@@ -87,7 +87,7 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
	}

	ret = skl_int3472_fill_gpiod_lookup(&int3472->gpios.table[int3472->n_sensor_gpios],
					    agpio, func, polarity);
					    agpio, func, gpio_flags);
	if (ret)
		return ret;

@@ -100,7 +100,7 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
static struct gpio_desc *
skl_int3472_gpiod_get_from_temp_lookup(struct int3472_discrete_device *int3472,
				       struct acpi_resource_gpio *agpio,
				       const char *func, u32 polarity)
				       const char *func, unsigned long gpio_flags)
{
	struct gpio_desc *desc;
	int ret;
@@ -111,7 +111,7 @@ skl_int3472_gpiod_get_from_temp_lookup(struct int3472_discrete_device *int3472,
		return ERR_PTR(-ENOMEM);

	lookup->dev_id = dev_name(int3472->dev);
	ret = skl_int3472_fill_gpiod_lookup(&lookup->table[0], agpio, func, polarity);
	ret = skl_int3472_fill_gpiod_lookup(&lookup->table[0], agpio, func, gpio_flags);
	if (ret)
		return ERR_PTR(ret);

@@ -122,32 +122,33 @@ skl_int3472_gpiod_get_from_temp_lookup(struct int3472_discrete_device *int3472,
	return desc;
}

static void int3472_get_func_and_polarity(u8 type, const char **func, u32 *polarity)
static void int3472_get_func_and_polarity(u8 type, const char **func,
					  unsigned long *gpio_flags)
{
	switch (type) {
	case INT3472_GPIO_TYPE_RESET:
		*func = "reset";
		*polarity = GPIO_ACTIVE_LOW;
		*gpio_flags = GPIO_ACTIVE_LOW;
		break;
	case INT3472_GPIO_TYPE_POWERDOWN:
		*func = "powerdown";
		*polarity = GPIO_ACTIVE_LOW;
		*gpio_flags = GPIO_ACTIVE_LOW;
		break;
	case INT3472_GPIO_TYPE_CLK_ENABLE:
		*func = "clk-enable";
		*polarity = GPIO_ACTIVE_HIGH;
		*gpio_flags = GPIO_ACTIVE_HIGH;
		break;
	case INT3472_GPIO_TYPE_PRIVACY_LED:
		*func = "privacy-led";
		*polarity = GPIO_ACTIVE_HIGH;
		*gpio_flags = GPIO_ACTIVE_HIGH;
		break;
	case INT3472_GPIO_TYPE_POWER_ENABLE:
		*func = "power-enable";
		*polarity = GPIO_ACTIVE_HIGH;
		*gpio_flags = GPIO_ACTIVE_HIGH;
		break;
	default:
		*func = "unknown";
		*polarity = GPIO_ACTIVE_HIGH;
		*gpio_flags = GPIO_ACTIVE_HIGH;
		break;
	}
}
@@ -194,7 +195,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
	struct gpio_desc *gpio;
	const char *err_msg;
	const char *func;
	u32 polarity;
	unsigned long gpio_flags;
	int ret;

	if (!acpi_gpio_get_io_resource(ares, &agpio))
@@ -217,7 +218,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,

	type = FIELD_GET(INT3472_GPIO_DSM_TYPE, obj->integer.value);

	int3472_get_func_and_polarity(type, &func, &polarity);
	int3472_get_func_and_polarity(type, &func, &gpio_flags);

	pin = FIELD_GET(INT3472_GPIO_DSM_PIN, obj->integer.value);
	/* Pin field is not really used under Windows and wraps around at 8 bits */
@@ -227,16 +228,16 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,

	active_value = FIELD_GET(INT3472_GPIO_DSM_SENSOR_ON_VAL, obj->integer.value);
	if (!active_value)
		polarity ^= GPIO_ACTIVE_LOW;
		gpio_flags ^= GPIO_ACTIVE_LOW;

	dev_dbg(int3472->dev, "%s %s pin %d active-%s\n", func,
		agpio->resource_source.string_ptr, agpio->pin_table[0],
		str_high_low(polarity == GPIO_ACTIVE_HIGH));
		str_high_low(gpio_flags == GPIO_ACTIVE_HIGH));

	switch (type) {
	case INT3472_GPIO_TYPE_RESET:
	case INT3472_GPIO_TYPE_POWERDOWN:
		ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, func, polarity);
		ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, func, gpio_flags);
		if (ret)
			err_msg = "Failed to map GPIO pin to sensor\n";

@@ -244,7 +245,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
	case INT3472_GPIO_TYPE_CLK_ENABLE:
	case INT3472_GPIO_TYPE_PRIVACY_LED:
	case INT3472_GPIO_TYPE_POWER_ENABLE:
		gpio = skl_int3472_gpiod_get_from_temp_lookup(int3472, agpio, func, polarity);
		gpio = skl_int3472_gpiod_get_from_temp_lookup(int3472, agpio, func, gpio_flags);
		if (IS_ERR(gpio)) {
			ret = PTR_ERR(gpio);
			err_msg = "Failed to get GPIO\n";