2023-01-05 09:58:24

by xurui

[permalink] [raw]
Subject: [PATCH] fbdev/g364fb: Fix a compilation issue

drivers/video/fbdev/g364fb.c:202:4: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

Signed-off-by: xurui <[email protected]>
---
drivers/video/fbdev/g364fb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
index 05837a3b985c..beef4bcec3c5 100644
--- a/drivers/video/fbdev/g364fb.c
+++ b/drivers/video/fbdev/g364fb.c
@@ -175,7 +175,8 @@ int __init g364fb_init(void)
{
volatile unsigned int *curs_pal_ptr =
(volatile unsigned int *) CURS_PAL_REG;
- int mem, i;
+ int mem;
+ uintptr_t i;

if (fb_get_options("g364fb", NULL))
return -ENODEV;
--
2.25.1


2023-01-09 08:15:21

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH] fbdev/g364fb: Fix a compilation issue

On 1/5/23 10:40, xurui wrote:
> drivers/video/fbdev/g364fb.c:202:4: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>
> Signed-off-by: xurui <[email protected]>

applied.

Thanks!
Helge

> ---
> drivers/video/fbdev/g364fb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
> index 05837a3b985c..beef4bcec3c5 100644
> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -175,7 +175,8 @@ int __init g364fb_init(void)
> {
> volatile unsigned int *curs_pal_ptr =
> (volatile unsigned int *) CURS_PAL_REG;
> - int mem, i;
> + int mem;
> + uintptr_t i;
>
> if (fb_get_options("g364fb", NULL))
> return -ENODEV;

2023-01-09 10:05:13

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] fbdev/g364fb: Fix a compilation issue

Hi Xurui,

On Thu, Jan 5, 2023 at 10:45 AM xurui <[email protected]> wrote:
> drivers/video/fbdev/g364fb.c:202:4: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>
> Signed-off-by: xurui <[email protected]>

Thanks for your patch!

> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -175,7 +175,8 @@ int __init g364fb_init(void)
> {
> volatile unsigned int *curs_pal_ptr =
> (volatile unsigned int *) CURS_PAL_REG;
> - int mem, i;
> + int mem;
> + uintptr_t i;

This doesn't look like the right fix to me.

The line the compiler[1] complains about is:

*(unsigned short *) (CURS_PAT_REG + i * 8) = 0;

Interestingly, it doesn't complain about:

*(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff;

This driver uses raw memory writes to write to hardware registers.
Probably it should use writel() instead.

[1] mips64-linux-gnuabi64-gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1)
jazz_defconfig + CONFIG_64BIT=y

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2023-01-09 10:09:45

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] fbdev/g364fb: Fix a compilation issue

This time with the new linux-mips mailing list address...

On Mon, Jan 9, 2023 at 11:01 AM Geert Uytterhoeven <[email protected]> wrote:
>
> Hi Xurui,
>
> On Thu, Jan 5, 2023 at 10:45 AM xurui <[email protected]> wrote:
> > drivers/video/fbdev/g364fb.c:202:4: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> >
> > Signed-off-by: xurui <[email protected]>
>
> Thanks for your patch!
>
> > --- a/drivers/video/fbdev/g364fb.c
> > +++ b/drivers/video/fbdev/g364fb.c
> > @@ -175,7 +175,8 @@ int __init g364fb_init(void)
> > {
> > volatile unsigned int *curs_pal_ptr =
> > (volatile unsigned int *) CURS_PAL_REG;
> > - int mem, i;
> > + int mem;
> > + uintptr_t i;
>
> This doesn't look like the right fix to me.
>
> The line the compiler[1] complains about is:
>
> *(unsigned short *) (CURS_PAT_REG + i * 8) = 0;
>
> Interestingly, it doesn't complain about:
>
> *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff;
>
> This driver uses raw memory writes to write to hardware registers.
> Probably it should use writel() instead.
>
> [1] mips64-linux-gnuabi64-gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1)
> jazz_defconfig + CONFIG_64BIT=y
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds

2023-01-15 21:08:49

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH] fbdev/g364fb: Fix a compilation issue

Hi Xurui,

On 1/9/23 11:04, Geert Uytterhoeven wrote:
> This time with the new linux-mips mailing list address...
>
> On Mon, Jan 9, 2023 at 11:01 AM Geert Uytterhoeven <[email protected]> wrote:
>>
>> Hi Xurui,
>>
>> On Thu, Jan 5, 2023 at 10:45 AM xurui <[email protected]> wrote:
>>> drivers/video/fbdev/g364fb.c:202:4: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
>>>
>>> Signed-off-by: xurui <[email protected]>
>>
>> Thanks for your patch!
>>
>>> --- a/drivers/video/fbdev/g364fb.c
>>> +++ b/drivers/video/fbdev/g364fb.c
>>> @@ -175,7 +175,8 @@ int __init g364fb_init(void)
>>> {
>>> volatile unsigned int *curs_pal_ptr =
>>> (volatile unsigned int *) CURS_PAL_REG;
>>> - int mem, i;
>>> + int mem;
>>> + uintptr_t i;
>>
>> This doesn't look like the right fix to me.
>>
>> The line the compiler[1] complains about is:
>>
>> *(unsigned short *) (CURS_PAT_REG + i * 8) = 0;
>>
>> Interestingly, it doesn't complain about:
>>
>> *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff;
>>
>> This driver uses raw memory writes to write to hardware registers.
>> Probably it should use writel() instead.

Xurui, I'll drop this patch from fbdev git tree for now.

Please check if the driver can be converted to writel() or similiar.

Thanks,
Helge

>> [1] mips64-linux-gnuabi64-gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1)
>> jazz_defconfig + CONFIG_64BIT=y