RE: [PATCH 04/20] pinctrl: Record a pin owner, not mux function,when requesting pins

From: Stephen Warren
Date: Tue Feb 21 2012 - 12:24:26 EST


Linus Walleij wrote at Monday, February 20, 2012 2:15 PM:
> On Mon, Feb 20, 2012 at 7:45 AM, Stephen Warren <swarren@xxxxxxxxxx> wrote:
>
> > When pins are requested/acquired/got, some device becomes the owner of
> > their mux setting. At this point, it isn't certain which mux function
> > will be selected for the pin, since this may vary between each of the
> > device's states in the pinctrl mapping table. As such, we should record
> > the owning device, not what we think the initial mux setting will be,
> > when requesting pins.
> >
> > This doesn't make a lot of difference right now since pinctrl_get gets
> > only one single device/state combination, but this will make a difference
> > when pinctrl_get gets all states, and pinctrl_select_state can switch
> > between states.
> >
> > Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx>
>
> Mostly a rename then, OK...
>
> > @@ -66,19 +65,14 @@ static int pin_request(struct pinctrl_dev *pctldev,
> >                goto out;
> >        }
> >
> > -       if (!function) {
> > -               dev_err(pctldev->dev, "no function name given\n");
> > -               return -EINVAL;
> > -       }
> > -
>
> Why should it be allowed to have a NULL owner? There is a
> debug print involving it above but ... maybe this is over-cautious?

My reasoning was that this is an internal function, so this isn't a user-
supplied parameter we need to be paranoid about checking, and the places
that call this function internally "obviously" don't pass NULL owner.
Well, I suppose one place relies on the fact we checked elsewhere that
map->dev_name != NULL.

Still, I can see a defensive programming argument for keeping that check,
although I suspect if we apply that argument we should probably check a
lot more things too throughout the code?

--
nvpublic

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/