2018-01-29 03:01:33

by Bjorn Andersson

[permalink] [raw]
Subject: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

The base of the TLMM gpiochip should not be statically defined as 0, fix
this to not artificially restrict the existence of multiple pinctrl-msm
devices.

Fixes: f365be092572 ("pinctrl: Add Qualcomm TLMM driver")
Reported-by: Timur Tabi <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
---
drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 495432f3341b..95e5c5ea40af 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -818,7 +818,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
return -EINVAL;

chip = &pctrl->chip;
- chip->base = 0;
+ chip->base = -1;
chip->ngpio = ngpio;
chip->label = dev_name(pctrl->dev);
chip->parent = pctrl->dev;
--
2.15.0



2018-02-07 13:52:59

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On Mon, Jan 29, 2018 at 1:59 AM, Bjorn Andersson
<[email protected]> wrote:

> The base of the TLMM gpiochip should not be statically defined as 0, fix
> this to not artificially restrict the existence of multiple pinctrl-msm
> devices.
>
> Fixes: f365be092572 ("pinctrl: Add Qualcomm TLMM driver")
> Reported-by: Timur Tabi <[email protected]>
> Signed-off-by: Bjorn Andersson <[email protected]>

OK I put this in devel for v4.17, let's see if something explodes
in linux-next else we can go with this.

Otherwise we need something that conserves base 0 for singular
TLMM drivers and make it -1 for newer platforms with several
instances.

Yours,
Linus Walleij

2018-02-07 14:53:31

by Timur Tabi

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On 2/7/18 7:52 AM, Linus Walleij wrote:
> Otherwise we need something that conserves base 0 for singular
> TLMM drivers and make it -1 for newer platforms with several
> instances.

static int base = 0;

chip->base = base;
base = -1;

--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.

2018-02-20 16:43:42

by Timur Tabi

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On 02/07/2018 07:52 AM, Linus Walleij wrote:
> OK I put this in devel for v4.17, let's see if something explodes
> in linux-next else we can go with this.
>
> Otherwise we need something that conserves base 0 for singular
> TLMM drivers and make it -1 for newer platforms with several
> instances.

I don't see this patch in linusw/linux-gpio.git anywhere. Do you want
me to submit another patch that implements this:

static int base = 0;

chip->base = base;
base = -1;

This preserves existing behavior for current drivers.

--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.

2020-10-23 16:23:40

by Arun KS

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On Mon, Jan 29, 2018 at 8:30 AM Bjorn Andersson
<[email protected]> wrote:
>
> The base of the TLMM gpiochip should not be statically defined as 0, fix
> this to not artificially restrict the existence of multiple pinctrl-msm
> devices.

Can someone please provide the details why this is needed for
pinctrl-msm. Is there any msm-chipset using multiple tlmm devices? I
m only concerned because, after this change, the use of gpio number
from user space has become a little difficult. Can we merge the patch
from Timur to maintain the past behavior when multiple tlmm devices
are not present, which is most likely the case?

static int base = 0;

chip->base = base;
base = -1;

Regards,
Arun

>
> Fixes: f365be092572 ("pinctrl: Add Qualcomm TLMM driver")
> Reported-by: Timur Tabi <[email protected]>
> Signed-off-by: Bjorn Andersson <[email protected]>
> ---
> drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> index 495432f3341b..95e5c5ea40af 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> @@ -818,7 +818,7 @@ static int msm_gpio_init(struct msm_pinctrl *pctrl)
> return -EINVAL;
>
> chip = &pctrl->chip;
> - chip->base = 0;
> + chip->base = -1;
> chip->ngpio = ngpio;
> chip->label = dev_name(pctrl->dev);
> chip->parent = pctrl->dev;
> --
> 2.15.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2020-11-05 10:18:39

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On Fri, Oct 23, 2020 at 4:21 PM Arun KS <[email protected]> wrote:

> Im only concerned because, after this change, the use of gpio number
> from user space has become a little difficult.

This makes me a bit puzzled so I need to push back a bit
here.

What is this userspace and what interface is it using?

We recommend using the GPIO character device with
libgpiod for userspace applications:
https://www.kernel.org/doc/html/latest/driver-api/gpio/using-gpio.html

Is there any problem with this?

sysfs is deprecated for years now:
https://www.kernel.org/doc/html/latest/admin-guide/gpio/sysfs.html

Yours,
Linus Walleij

2020-11-08 15:15:44

by Arun KS

[permalink] [raw]
Subject: Re: [PATCH] pinctrl: msm: Use dynamic GPIO numbering

On Thu, Nov 5, 2020 at 3:46 PM Linus Walleij <[email protected]> wrote:
>
> On Fri, Oct 23, 2020 at 4:21 PM Arun KS <[email protected]> wrote:
>
> > Im only concerned because, after this change, the use of gpio number
> > from user space has become a little difficult.
>
> This makes me a bit puzzled so I need to push back a bit
> here.
>
> What is this userspace and what interface is it using?
>
> We recommend using the GPIO character device with
> libgpiod for userspace applications:
> https://www.kernel.org/doc/html/latest/driver-api/gpio/using-gpio.html

Thanks Linus. Makes sense. Basically using the gpiochipset and offset
to it will solve my problem. Earlier, while using the sysfs interface,
it used to be one to one mapping with real gpio numbers.

Regards,
Arun
>
> Is there any problem with this?
>
> sysfs is deprecated for years now:
> https://www.kernel.org/doc/html/latest/admin-guide/gpio/sysfs.html
>
> Yours,
> Linus Walleij