diff mbox series

pinctrl: artpec6: fix __iomem on reg in set

Message ID 20191218101602.2442868-1-ben.dooks@codethink.co.uk
State New
Headers show
Series pinctrl: artpec6: fix __iomem on reg in set | expand

Commit Message

Ben Dooks Dec. 18, 2019, 10:16 a.m. UTC
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(-)

Comments

Jesper Nilsson Dec. 18, 2019, 4:26 p.m. UTC | #1
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
Ben Dooks Dec. 18, 2019, 5:32 p.m. UTC | #2
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
>
Linus Walleij Jan. 7, 2020, 9:39 a.m. UTC | #3
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
Jesper Nilsson Jan. 7, 2020, 11:18 a.m. UTC | #4
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
Linus Walleij Jan. 7, 2020, 12:52 p.m. UTC | #5
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 mbox series

Patch

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 */