diff mbox series

video: fbdev: amiga: Simplify amifb_pan_display()

Message ID b803f10a2b3b85386b25a2e25b98fb4e59413ea9.1657553681.git.geert@linux-m68k.org (mailing list archive)
State New, archived
Headers show
Series video: fbdev: amiga: Simplify amifb_pan_display() | expand

Commit Message

Geert Uytterhoeven July 11, 2022, 3:35 p.m. UTC
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(-)

Comments

Helge Deller July 11, 2022, 9:20 p.m. UTC | #1
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 mbox series

Patch

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;
 }