Message ID | b803f10a2b3b85386b25a2e25b98fb4e59413ea9.1657553681.git.geert@linux-m68k.org |
---|---|
State | New |
Headers | show |
Series | video: fbdev: amiga: Simplify amifb_pan_display() | expand |
On 7/11/22 17:35, Geert Uytterhoeven wrote: > The fb_pan_display() function in the core already takes care of > validating most panning parameters before calling the driver's > .fb_pan_display() callback, and of updating the panning state > afterwards, so there is no need to repeat that in the driver. > > Remove the duplicate code. > > Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> I've applied this and the other 3 patches to the fbdev git tree. Thanks! Helge > --- > drivers/video/fbdev/amifb.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c > index 6e07a97bbd31a1dd..d88265dbebf4cb19 100644 > --- a/drivers/video/fbdev/amifb.c > +++ b/drivers/video/fbdev/amifb.c > @@ -2540,27 +2540,16 @@ static int amifb_blank(int blank, struct fb_info *info) > static int amifb_pan_display(struct fb_var_screeninfo *var, > struct fb_info *info) > { > - if (var->vmode & FB_VMODE_YWRAP) { > - if (var->yoffset < 0 || > - var->yoffset >= info->var.yres_virtual || var->xoffset) > - return -EINVAL; > - } else { > + if (!(var->vmode & FB_VMODE_YWRAP)) { > /* > * TODO: There will be problems when xpan!=1, so some columns > * on the right side will never be seen > */ > if (var->xoffset + info->var.xres > > - upx(16 << maxfmode, info->var.xres_virtual) || > - var->yoffset + info->var.yres > info->var.yres_virtual) > + upx(16 << maxfmode, info->var.xres_virtual)) > return -EINVAL; > } > ami_pan_var(var, info); > - info->var.xoffset = var->xoffset; > - info->var.yoffset = var->yoffset; > - if (var->vmode & FB_VMODE_YWRAP) > - info->var.vmode |= FB_VMODE_YWRAP; > - else > - info->var.vmode &= ~FB_VMODE_YWRAP; > return 0; > } >
diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c index 6e07a97bbd31a1dd..d88265dbebf4cb19 100644 --- a/drivers/video/fbdev/amifb.c +++ b/drivers/video/fbdev/amifb.c @@ -2540,27 +2540,16 @@ static int amifb_blank(int blank, struct fb_info *info) static int amifb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) { - if (var->vmode & FB_VMODE_YWRAP) { - if (var->yoffset < 0 || - var->yoffset >= info->var.yres_virtual || var->xoffset) - return -EINVAL; - } else { + if (!(var->vmode & FB_VMODE_YWRAP)) { /* * TODO: There will be problems when xpan!=1, so some columns * on the right side will never be seen */ if (var->xoffset + info->var.xres > - upx(16 << maxfmode, info->var.xres_virtual) || - var->yoffset + info->var.yres > info->var.yres_virtual) + upx(16 << maxfmode, info->var.xres_virtual)) return -EINVAL; } ami_pan_var(var, info); - info->var.xoffset = var->xoffset; - info->var.yoffset = var->yoffset; - if (var->vmode & FB_VMODE_YWRAP) - info->var.vmode |= FB_VMODE_YWRAP; - else - info->var.vmode &= ~FB_VMODE_YWRAP; return 0; }
The fb_pan_display() function in the core already takes care of validating most panning parameters before calling the driver's .fb_pan_display() callback, and of updating the panning state afterwards, so there is no need to repeat that in the driver. Remove the duplicate code. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> --- drivers/video/fbdev/amifb.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-)