Re: [PATCH 1/3] fbdev/g364fb: Fix build failure

From: Philippe Mathieu-DaudÃ
Date: Wed Feb 05 2020 - 13:02:25 EST


On Sun, Feb 2, 2020 at 3:41 AM Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> wrote:
>
> This patch resolves these compiler errors and warnings --
>
> CC drivers/video/fbdev/g364fb.o
> drivers/video/fbdev/g364fb.c: In function 'g364fb_cursor':
> drivers/video/fbdev/g364fb.c:137:9: error: 'x' undeclared (first use in this function)
> drivers/video/fbdev/g364fb.c:137:9: note: each undeclared identifier is reported only once for each function it appears in
> drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of function 'fontwidth' [-Werror=implicit-function-declaration]
> drivers/video/fbdev/g364fb.c:137:23: error: 'p' undeclared (first use in this function)
> drivers/video/fbdev/g364fb.c:137:38: error: 'y' undeclared (first use in this function)
> drivers/video/fbdev/g364fb.c:137:7: error: implicit declaration of function 'fontheight' [-Werror=implicit-function-declaration]
> drivers/video/fbdev/g364fb.c: In function 'g364fb_init':
> drivers/video/fbdev/g364fb.c:233:24: error: 'fbvar' undeclared (first use in this function)
> drivers/video/fbdev/g364fb.c:234:24: error: 'xres' undeclared (first use in this function)

18 years unnoticed...

> drivers/video/fbdev/g364fb.c:201:14: warning: unused variable 'j' [-Wunused-variable]
> drivers/video/fbdev/g364fb.c:197:25: warning: unused variable 'pal_ptr' [-Wunused-variable]
>
> The MIPS Magnum framebuffer console now works when tested in QEMU.
>
> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@xxxxxxxxxxx>
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")

This commit is the kernel 'git origin' import, not the proper reference.

The actual change is between v2.5.17/2.5.19:
https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/diff/drivers/video/g364fb.c?id=b30e6e183a728923267
Date: 2002-05-22 07:52:33...

The same commit introduced the changes in g364fb_cursor(), which was
implemented previous to v2.4.0 so it is hard to follow from there.

Nobody complains during 18 years so I doubt anyone care that
g364fb_cursor() is removed.
And by removing it, you improve the kernel quality, so:
Reviewed-by: Philippe Mathieu-Daudà <f4bug@xxxxxxxxx>
(Maybe remove the unhelpful 'Fixes' tag).

> Signed-off-by: Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/video/fbdev/g364fb.c | 29 +++--------------------------
> 1 file changed, 3 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
> index 223896cc5f7d..fb26230a3c7b 100644
> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -108,7 +108,6 @@ static int g364fb_pan_display(struct fb_var_screeninfo *var,
> static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
> u_int blue, u_int transp,
> struct fb_info *info);
> -static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
> static int g364fb_blank(int blank, struct fb_info *info);
>
> static struct fb_ops g364fb_ops = {
> @@ -119,28 +118,8 @@ static struct fb_ops g364fb_ops = {
> .fb_fillrect = cfb_fillrect,
> .fb_copyarea = cfb_copyarea,
> .fb_imageblit = cfb_imageblit,
> - .fb_cursor = g364fb_cursor,
> };
>
> -int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
> -{
> -
> - switch (cursor->enable) {
> - case CM_ERASE:
> - *(unsigned int *) CTLA_REG |= CURS_TOGGLE;
> - break;
> -
> - case CM_MOVE:
> - case CM_DRAW:
> - *(unsigned int *) CTLA_REG &= ~CURS_TOGGLE;
> - *(unsigned int *) CURS_POS_REG =
> - ((x * fontwidth(p)) << 12) | ((y * fontheight(p)) -
> - info->var.yoffset);
> - break;
> - }
> - return 0;
> -}
> -
> /*
> * Pan or Wrap the Display
> *
> @@ -194,11 +173,9 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
> */
> int __init g364fb_init(void)
> {
> - volatile unsigned int *pal_ptr =
> - (volatile unsigned int *) CLR_PAL_REG;
> volatile unsigned int *curs_pal_ptr =
> (volatile unsigned int *) CURS_PAL_REG;
> - int mem, i, j;
> + int mem, i;
>
> if (fb_get_options("g364fb", NULL))
> return -ENODEV;
> @@ -230,8 +207,8 @@ int __init g364fb_init(void)
> */
> *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff;
> *(unsigned short *) (CURS_PAT_REG + 15 * 64) = 0xffff;
> - fb_var.xres_virtual = fbvar.xres;
> - fb_fix.line_length = (xres / 8) * fb_var.bits_per_pixel;
> + fb_var.xres_virtual = fb_var.xres;
> + fb_fix.line_length = fb_var.xres_virtual * fb_var.bits_per_pixel / 8;
> fb_fix.smem_start = 0x40000000; /* physical address */
> /* get size of video memory; this is special for the JAZZ hardware */
> mem = (r4030_read_reg32(JAZZ_R4030_CONFIG) >> 8) & 3;
> --
> 2.24.1
>