Re: [PATCH 3/8] pinctrl: msm: Add ability for drivers to supply a reserved GPIO list

From: Lee Jones
Date: Mon Jun 10 2019 - 04:07:26 EST


On Fri, 07 Jun 2019, Bjorn Andersson wrote:

> On Wed 05 Jun 04:42 PDT 2019, Lee Jones wrote:
>
> > When booting MSM based platforms with Device Tree or some ACPI
> > implementations, it is possible to provide a list of reserved pins
> > via the 'gpio-reserved-ranges' and 'gpios' properties respectively.
> > However some ACPI tables are not populated with this information,
> > thus it has to come from a knowledgable device driver instead.
> >
> > Here we provide the MSM common driver with additional support to
> > parse this informtion and correctly populate the widely used
> > 'valid_mask'.
> >
> > Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
> > ---
> > drivers/pinctrl/qcom/pinctrl-msm.c | 18 ++++++++++++++++++
> > drivers/pinctrl/qcom/pinctrl-msm.h | 1 +
> > 2 files changed, 19 insertions(+)
> >
> > diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> > index ee8119879c4c..3ac740b36508 100644
> > --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> > +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> > @@ -607,8 +607,23 @@ static int msm_gpio_init_valid_mask(struct gpio_chip *chip)
> > int ret;
> > unsigned int len, i;
> > unsigned int max_gpios = pctrl->soc->ngpios;
> > + const int *reserved = pctrl->soc->reserved_gpios;
> > u16 *tmp;
> >
> > + /* Driver provided reserved list overrides DT and ACPI */
> > + if (reserved) {
> > + bitmap_fill(chip->valid_mask, max_gpios);
> > + for (i = 0; reserved[i] >= 0; i++) {
> > + if (i >= max_gpios || reserved[i] >= max_gpios) {
>
> reserved is a list of GPIOs to reserve, I don't see a reason to check
> if that list is longer than the number of GPIOs (i.e. the first half of
> the condition).
>
> It wouldn't make sense to be, but there's no logical issue with it and I
> had to read the conditional a few extra times to be sure what was going
> on.

If nothing else, it's an early hard stop in case someone forgot to
terminate the reserved array.

> Apart from that you have my
>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

Thanks Bjorn.

--
Lee Jones [æçæ]
Linaro Services Technical Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog