On 05/16/2014 10:21 AM, Linus Walleij wrote: > On Wed, May 14, 2014 at 4:01 AM, <[email protected]> wrote: > >> From: Fan Wu <[email protected]> >> >> The patch added params in disable_setting to differ the two possible usage, >> 1.Only want to disable the pin setting in SW aspect, param can be set to "0" >> 2.Want to disable the pin setting in both HW and SW aspect, param can be set >> to "1"; >> >> The reason why to do this is that: >> To avoid duplicated enable_setting operation without disabling operation >> which will >> let Pin's desc->mux_usecount keep being added. >> >> In the following case, the issue can be reproduced: >> 1)There is a driver need to switch Pin state dynamicly, E.g. b/t "sleep" and >> "default" state >> 2)The Pin setting configuration in the two state is same, like the following >> one: >> component a { >> pinctrl-names = "default", "sleep"; >> pinctrl-0 = <&a_grp_setting &c_grp_setting>; >> pinctrl-1 = <&b_grp_setting &c_grp_setting>; >> } >> The "c_grp_setting" config node is totaly same, maybe like following one: > > Hm this is a quite interesting thing if we can get it in place, but > I need Stephen's consent, also Tony should have a look at this as > I know he's had the same problem as you in pinctrl-single.
I only briefly looked at the patch, but it probably solves/hides the immediate problem. However, rather than doing this, why not just remove pinmux_disable_setting() completely. It doesn't make sense to "disable a mux selection" (some value is always selected in the mux register field) any more than it does to "disable a drive strength selection". We don't have a pinconf_disable_setting(), and couldn't really add one if we wanted. For consistency, let's just remove pinmux_disable_setting(). Do you agree? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

