On Fri, Jun 15, 2018 at 2:14 PM Tony Lindgren <t...@atomide.com> wrote:
>
> We must return the selector from pinctrl_generic_add_group() so
> pin controller device drivers can remove the right group if needed
> for deferred probe for example.
>
> Note that fixes are also needed for the pin controller drivers to
> use the selector value.
>
> Fixes: c7059c5ac70a ("pinctrl: core: Add generic pinctrl functions
> for managing groups")
> Reported-by: H. Nikolaus Schaller <h...@goldelico.com>
> Cc: Haojian Zhuang <haojian.zhu...@linaro.org>
> Cc: Jacopo Mondi <jacopo+rene...@jmondi.org>
> Cc: Paul Cercueil <p...@crapouillou.net>
> Cc: Sean Wang <sean.w...@mediatek.com>
> Signed-off-by: Tony Lindgren <t...@atomide.com>
> ---
>  drivers/pinctrl/core.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
> --- a/drivers/pinctrl/core.c
> +++ b/drivers/pinctrl/core.c
> @@ -631,6 +631,7 @@ int pinctrl_generic_add_group(struct pinctrl_dev 
> *pctldev, const char *name,
>                               int *pins, int num_pins, void *data)
>  {
>         struct group_desc *group;
> +       int selector = pctldev->num_groups;
>
>         group = devm_kzalloc(pctldev->dev, sizeof(*group), GFP_KERNEL);
>         if (!group)
> @@ -641,12 +642,12 @@ int pinctrl_generic_add_group(struct pinctrl_dev 
> *pctldev, const char *name,
>         group->num_pins = num_pins;
>         group->data = data;
>
> -       radix_tree_insert(&pctldev->pin_group_tree, pctldev->num_groups,
> +       radix_tree_insert(&pctldev->pin_group_tree, selector,
>                           group);

A nit: Can it be now one line?

>
>         pctldev->num_groups++;
>
> -       return 0;
> +       return selector;
>  }
>  EXPORT_SYMBOL_GPL(pinctrl_generic_add_group);
>
> --
> 2.17.1



-- 
With Best Regards,
Andy Shevchenko

Reply via email to