[RFC] pinctrl: Replace list_groups() with get_groups_count()

Stephen Warren swarren at wwwdotorg.org
Thu Mar 29 13:26:48 EDT 2012


On 03/29/2012 10:34 AM, viresh kumar wrote:
> Most of the SoC drivers implement list_*() routines for pinctrl, pinmux,
> pinconf, etc, And these routines continue returning zero until the second
> argument is greater than total count of available groups, function, etc.
> 
> I will take struct pinctrl_ops as an example to elaborate my concern/doubts.
> 
> There are few concerns here:
> - list_groups() is called multiple times. If the purpose of this routine is to
>   only check the number of groups available, then why not remove it and create
>   another routine which returns number of total groups. Over which, we can run a
>   simple loop.
> - All client drivers have checks in their ops routines to check the range of
>   groups, which is just not required if we pass the correct number to pinctrl
>   framework. Because these ops are going to be called via pinctrl, and we can
>   trust on it and place these range checkers there only to make SoC drivers
>   simple.
> 
> I just wanted to have different views about my concerns/idea before i start
> coding. If this idea looks fine, i would do this change across pinmux framework.

The concept is fine by me.

I vaguely recall raising the same issue before, and Linus saying he
wanted to be consistent with similar list_*() functions in other
subsystems, but personally I'd prefer to evaluate this aspect of the
pinctrl subsystem on its own.



More information about the linux-arm-kernel mailing list