diff mbox series

fbdev/g364fb: Fix a compilation issue

Message ID 20230105094039.1474255-1-xurui@kylinos.cn (mailing list archive)
State Superseded
Headers show
Series fbdev/g364fb: Fix a compilation issue | expand

Commit Message

xurui Jan. 5, 2023, 9:40 a.m. UTC
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 <xurui@kylinos.cn>
---
 drivers/video/fbdev/g364fb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Helge Deller Jan. 9, 2023, 8:09 a.m. UTC | #1
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 <xurui@kylinos.cn>

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;
Geert Uytterhoeven Jan. 9, 2023, 10:01 a.m. UTC | #2
Hi Xurui,

On Thu, Jan 5, 2023 at 10:45 AM xurui <xurui@kylinos.cn> 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 <xurui@kylinos.cn>

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 -- geert@linux-m68k.org

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
Geert Uytterhoeven Jan. 9, 2023, 10:04 a.m. UTC | #3
This time with the new linux-mips mailing list address...

On Mon, Jan 9, 2023 at 11:01 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> Hi Xurui,
>
> On Thu, Jan 5, 2023 at 10:45 AM xurui <xurui@kylinos.cn> 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 <xurui@kylinos.cn>
>
> 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 -- geert@linux-m68k.org
>
> 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
Helge Deller Jan. 15, 2023, 8:46 p.m. UTC | #4
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 <geert@linux-m68k.org> wrote:
>>
>> Hi Xurui,
>>
>> On Thu, Jan 5, 2023 at 10:45 AM xurui <xurui@kylinos.cn> 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 <xurui@kylinos.cn>
>>
>> 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
diff mbox series

Patch

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;