Commit d99f8876 authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

Revert "gpiolib: Remove duplicated function gpio_do_set_config()"



This reverts commit d18fddff.

This patch came on top of another patch that introduced a regression.
Revert it before addressing the culprit.

Signed-off-by: default avatarBartosz Golaszewski <bgolaszewski@baylibre.com>
Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent bb6d3fb3
Loading
Loading
Loading
Loading
+23 −4
Original line number Diff line number Diff line
@@ -3035,7 +3035,7 @@ EXPORT_SYMBOL_GPL(gpiochip_free_own_desc);
 * rely on gpio_request() having been called beforehand.
 */

static int gpio_set_config(struct gpio_chip *gc, unsigned int offset,
static int gpio_do_set_config(struct gpio_chip *gc, unsigned int offset,
			      enum pin_config_param mode)
{
	if (!gc->set_config)
@@ -3044,6 +3044,25 @@ static int gpio_set_config(struct gpio_chip *gc, unsigned int offset,
	return gc->set_config(gc, offset, mode);
}

static int gpio_set_config(struct gpio_chip *gc, unsigned int offset,
			   enum pin_config_param mode)
{
	unsigned arg;

	switch (mode) {
	case PIN_CONFIG_BIAS_DISABLE:
	case PIN_CONFIG_BIAS_PULL_DOWN:
	case PIN_CONFIG_BIAS_PULL_UP:
		arg = 1;
		break;

	default:
		arg = 0;
	}

	return gpio_do_set_config(gc, offset, mode);
}

static int gpio_set_bias(struct gpio_chip *chip, struct gpio_desc *desc)
{
	int bias = 0;
@@ -3277,7 +3296,7 @@ int gpiod_set_debounce(struct gpio_desc *desc, unsigned debounce)
	chip = desc->gdev->chip;

	config = pinconf_to_config_packed(PIN_CONFIG_INPUT_DEBOUNCE, debounce);
	return gpio_set_config(chip, gpio_chip_hwgpio(desc), config);
	return gpio_do_set_config(chip, gpio_chip_hwgpio(desc), config);
}
EXPORT_SYMBOL_GPL(gpiod_set_debounce);

@@ -3311,7 +3330,7 @@ int gpiod_set_transitory(struct gpio_desc *desc, bool transitory)
	packed = pinconf_to_config_packed(PIN_CONFIG_PERSIST_STATE,
					  !transitory);
	gpio = gpio_chip_hwgpio(desc);
	rc = gpio_set_config(chip, gpio, packed);
	rc = gpio_do_set_config(chip, gpio, packed);
	if (rc == -ENOTSUPP) {
		dev_dbg(&desc->gdev->dev, "Persistence not supported for GPIO %d\n",
				gpio);