Message ID | 20191218101602.2442868-1-ben.dooks@codethink.co.uk |
---|---|
State | New |
Headers | show |
Series | pinctrl: artpec6: fix __iomem on reg in set | expand |
On Wed, Dec 18, 2019 at 11:16:02AM +0100, Ben Dooks (Codethink) wrote: > The artpec6_pconf_set should have marked reg as __iomem, > which ends up making sparse complain about address > space conversions. Add the __iomem to silence the > following warnings: > > drivers/pinctrl/pinctrl-artpec6.c:814:13: warning: incorrect type in assignment (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:814:13: expected unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:814:13: got void [noderef] <asn:2> * > drivers/pinctrl/pinctrl-artpec6.c:825:34: warning: incorrect type in argument 1 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:825:34: expected void const volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:825:34: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:827:25: warning: incorrect type in argument 2 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:827:25: expected void volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:827:25: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:837:34: warning: incorrect type in argument 1 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:837:34: expected void const volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:837:34: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:840:25: warning: incorrect type in argument 2 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:840:25: expected void volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:840:25: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:850:34: warning: incorrect type in argument 1 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:850:34: expected void const volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:850:34: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:853:25: warning: incorrect type in argument 2 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:853:25: expected void volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:853:25: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:864:34: warning: incorrect type in argument 1 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:864:34: expected void const volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:864:34: got unsigned int *reg > drivers/pinctrl/pinctrl-artpec6.c:867:25: warning: incorrect type in argument 2 (different address spaces) > drivers/pinctrl/pinctrl-artpec6.c:867:25: expected void volatile [noderef] <asn:2> *addr > drivers/pinctrl/pinctrl-artpec6.c:867:25: got unsigned int *reg > > Signed-off-by: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk> > --- > Cc: Lars Persson <lars.persson@axis.com> > Cc: Linus Walleij <linus.walleij@linaro.org> > Cc: linux-arm-kernel@axis.com > Cc: linux-gpio@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > --- > drivers/pinctrl/pinctrl-artpec6.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pinctrl/pinctrl-artpec6.c b/drivers/pinctrl/pinctrl-artpec6.c > index 986e04ac6b5b..439a997b6bdb 100644 > --- a/drivers/pinctrl/pinctrl-artpec6.c > +++ b/drivers/pinctrl/pinctrl-artpec6.c > @@ -798,7 +798,7 @@ static int artpec6_pconf_set(struct pinctrl_dev *pctldev, unsigned int pin, > enum pin_config_param param; > unsigned int arg; > unsigned int regval; > - unsigned int *reg; > + unsigned int __iomem *reg; void __iomem *reg; We're using as an argument to readl()? > int i; > > /* Check for valid pin */ > -- > 2.24.0 > /^JN - Jesper Nilsson
On 18/12/2019 16:26, Jesper Nilsson wrote: > On Wed, Dec 18, 2019 at 11:16:02AM +0100, Ben Dooks (Codethink) wrote: >> The artpec6_pconf_set should have marked reg as __iomem, >> which ends up making sparse complain about address >> space conversions. Add the __iomem to silence the >> following warnings: >> >> drivers/pinctrl/pinctrl-artpec6.c:814:13: warning: incorrect type in assignment (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:814:13: expected unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:814:13: got void [noderef] <asn:2> * >> drivers/pinctrl/pinctrl-artpec6.c:825:34: warning: incorrect type in argument 1 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:825:34: expected void const volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:825:34: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:827:25: warning: incorrect type in argument 2 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:827:25: expected void volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:827:25: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:837:34: warning: incorrect type in argument 1 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:837:34: expected void const volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:837:34: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:840:25: warning: incorrect type in argument 2 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:840:25: expected void volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:840:25: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:850:34: warning: incorrect type in argument 1 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:850:34: expected void const volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:850:34: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:853:25: warning: incorrect type in argument 2 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:853:25: expected void volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:853:25: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:864:34: warning: incorrect type in argument 1 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:864:34: expected void const volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:864:34: got unsigned int *reg >> drivers/pinctrl/pinctrl-artpec6.c:867:25: warning: incorrect type in argument 2 (different address spaces) >> drivers/pinctrl/pinctrl-artpec6.c:867:25: expected void volatile [noderef] <asn:2> *addr >> drivers/pinctrl/pinctrl-artpec6.c:867:25: got unsigned int *reg >> >> Signed-off-by: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk> >> --- > > > > >> Cc: Lars Persson <lars.persson@axis.com> >> Cc: Linus Walleij <linus.walleij@linaro.org> >> Cc: linux-arm-kernel@axis.com >> Cc: linux-gpio@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org >> --- >> drivers/pinctrl/pinctrl-artpec6.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/pinctrl/pinctrl-artpec6.c b/drivers/pinctrl/pinctrl-artpec6.c >> index 986e04ac6b5b..439a997b6bdb 100644 >> --- a/drivers/pinctrl/pinctrl-artpec6.c >> +++ b/drivers/pinctrl/pinctrl-artpec6.c >> @@ -798,7 +798,7 @@ static int artpec6_pconf_set(struct pinctrl_dev *pctldev, unsigned int pin, >> enum pin_config_param param; >> unsigned int arg; >> unsigned int regval; >> - unsigned int *reg; >> + unsigned int __iomem *reg; > > void __iomem *reg; > > We're using as an argument to readl()? yes, readl() shoud take an __iomem attributed pointer. >> int i; >> >> /* Check for valid pin */ >> -- >> 2.24.0 >> > > /^JN - Jesper Nilsson >
On Wed, Dec 18, 2019 at 6:32 PM Ben Dooks <ben.dooks@codethink.co.uk> wrote: > On 18/12/2019 16:26, Jesper Nilsson wrote: > > On Wed, Dec 18, 2019 at 11:16:02AM +0100, Ben Dooks (Codethink) wrote: > >> - unsigned int *reg; > >> + unsigned int __iomem *reg; > > > > void __iomem *reg; > > > > We're using as an argument to readl()? > > yes, readl() shoud take an __iomem attributed pointer. Shall I change it to void as well when applying? Yours, Linus Walleij
On Tue, Jan 07, 2020 at 10:39:34AM +0100, Linus Walleij wrote: > On Wed, Dec 18, 2019 at 6:32 PM Ben Dooks <ben.dooks@codethink.co.uk> wrote: > > On 18/12/2019 16:26, Jesper Nilsson wrote: > > > On Wed, Dec 18, 2019 at 11:16:02AM +0100, Ben Dooks (Codethink) wrote: > > > >> - unsigned int *reg; > > >> + unsigned int __iomem *reg; > > > > > > void __iomem *reg; > > > > > > We're using as an argument to readl()? > > > > yes, readl() shoud take an __iomem attributed pointer. > > Shall I change it to void as well when applying? Please do, sorry that my comment wasn't clear above. > Yours, > Linus Walleij /^JN - Jesper Nilsson
On Tue, Jan 7, 2020 at 12:18 PM Jesper Nilsson <jesper.nilsson@axis.com> wrote: > On Tue, Jan 07, 2020 at 10:39:34AM +0100, Linus Walleij wrote: > > On Wed, Dec 18, 2019 at 6:32 PM Ben Dooks <ben.dooks@codethink.co.uk> wrote: > > > On 18/12/2019 16:26, Jesper Nilsson wrote: > > > > On Wed, Dec 18, 2019 at 11:16:02AM +0100, Ben Dooks (Codethink) wrote: > > > > > >> - unsigned int *reg; > > > >> + unsigned int __iomem *reg; > > > > > > > > void __iomem *reg; > > > > > > > > We're using as an argument to readl()? > > > > > > yes, readl() shoud take an __iomem attributed pointer. > > > > Shall I change it to void as well when applying? > > Please do, sorry that my comment wasn't clear above. OK I did that and applied, let's see if it works :) Yours, Linus Walleij
diff --git a/drivers/pinctrl/pinctrl-artpec6.c b/drivers/pinctrl/pinctrl-artpec6.c index 986e04ac6b5b..439a997b6bdb 100644 --- a/drivers/pinctrl/pinctrl-artpec6.c +++ b/drivers/pinctrl/pinctrl-artpec6.c @@ -798,7 +798,7 @@ static int artpec6_pconf_set(struct pinctrl_dev *pctldev, unsigned int pin, enum pin_config_param param; unsigned int arg; unsigned int regval; - unsigned int *reg; + unsigned int __iomem *reg; int i; /* Check for valid pin */
The artpec6_pconf_set should have marked reg as __iomem, which ends up making sparse complain about address space conversions. Add the __iomem to silence the following warnings: drivers/pinctrl/pinctrl-artpec6.c:814:13: warning: incorrect type in assignment (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:814:13: expected unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:814:13: got void [noderef] <asn:2> * drivers/pinctrl/pinctrl-artpec6.c:825:34: warning: incorrect type in argument 1 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:825:34: expected void const volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:825:34: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:827:25: warning: incorrect type in argument 2 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:827:25: expected void volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:827:25: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:837:34: warning: incorrect type in argument 1 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:837:34: expected void const volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:837:34: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:840:25: warning: incorrect type in argument 2 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:840:25: expected void volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:840:25: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:850:34: warning: incorrect type in argument 1 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:850:34: expected void const volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:850:34: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:853:25: warning: incorrect type in argument 2 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:853:25: expected void volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:853:25: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:864:34: warning: incorrect type in argument 1 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:864:34: expected void const volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:864:34: got unsigned int *reg drivers/pinctrl/pinctrl-artpec6.c:867:25: warning: incorrect type in argument 2 (different address spaces) drivers/pinctrl/pinctrl-artpec6.c:867:25: expected void volatile [noderef] <asn:2> *addr drivers/pinctrl/pinctrl-artpec6.c:867:25: got unsigned int *reg Signed-off-by: Ben Dooks (Codethink) <ben.dooks@codethink.co.uk> --- Cc: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Lars Persson <lars.persson@axis.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: linux-arm-kernel@axis.com Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/pinctrl/pinctrl-artpec6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)