Commit 385d9424 authored by Richard Genoud's avatar Richard Genoud Committed by Linus Walleij
Browse files

pinctrl: simplify the re-enable old state code in pinctrl_select_state



Instead of just enabling the settings that were disabled in the 1st
loop, it's simpler to recall pinctrl_select_state with the old state.

Signed-off-by: default avatarRichard Genoud <richard.genoud@gmail.com>
Reviewed-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent af606177
Loading
Loading
Loading
Loading
+3 −19
Original line number Diff line number Diff line
@@ -981,26 +981,10 @@ unapply_new_state:
			pinmux_disable_setting(setting2);
	}

	if (old_state) {
		list_for_each_entry(setting, &old_state->settings, node) {
			bool found = false;
			if (setting->type != PIN_MAP_TYPE_MUX_GROUP)
				continue;
			list_for_each_entry(setting2, &state->settings, node) {
				if (setting2->type != PIN_MAP_TYPE_MUX_GROUP)
					continue;
				if (setting2->data.mux.group ==
						setting->data.mux.group) {
					found = true;
					break;
				}
			}
			if (!found)
				pinmux_enable_setting(setting);
		}
	}
	/* There's no infinite recursive loop here because p->state is NULL */
	if (old_state)
		pinctrl_select_state_locked(p, old_state);

	p->state = old_state;
	return ret;
}