Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 405a6ba3 authored by Subbaraman Narayanamurthy's avatar Subbaraman Narayanamurthy
Browse files

pinctrl: qcom: spmi-gpio: Fix a bug in pmic_gpio_config_set



If dtest_buffer is configured, then it can overwrite "val" which
is set for configuring GPIO mode. Fix this by co-locating the
code to do GPIO mode configuration.

Change-Id: I441d5e64d951da63eff813d504a1506e96b87d0b
Signed-off-by: default avatarSubbaraman Narayanamurthy <subbaram@codeaurora.org>
parent a610edf6
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -569,14 +569,6 @@ static int pmic_gpio_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
	if (ret < 0)
		return ret;

	val = PMIC_GPIO_MODE_DIGITAL_INPUT;
	if (pad->output_enabled) {
		if (pad->input_enabled)
			val = PMIC_GPIO_MODE_DIGITAL_INPUT_OUTPUT;
		else
			val = PMIC_GPIO_MODE_DIGITAL_OUTPUT;
	}

	if (pad->dtest_buffer != INT_MAX) {
		val = pad->dtest_buffer;
		if (pad->lv_mv_type)
@@ -588,6 +580,14 @@ static int pmic_gpio_config_set(struct pinctrl_dev *pctldev, unsigned int pin,
			return ret;
	}

	val = PMIC_GPIO_MODE_DIGITAL_INPUT;
	if (pad->output_enabled) {
		if (pad->input_enabled)
			val = PMIC_GPIO_MODE_DIGITAL_INPUT_OUTPUT;
		else
			val = PMIC_GPIO_MODE_DIGITAL_OUTPUT;
	}

	if (pad->lv_mv_type) {
		if (pad->function == PMIC_GPIO_FUNC_INDEX_ANALOG) {
			val = PMIC_GPIO_MODE_ANALOG_PASS_THRU;