From 2d098d7164d42c1afa841bfa4aeba441f285ce29 Mon Sep 17 00:00:00 2001 From: Rakesh Iyer Date: Fri, 21 Dec 2012 13:18:53 -0800 Subject: video: tegra: fb: fix condition for screen panning Check for screen panning by comparing with previously saved display parameters. Bug 1046614 Change-Id: If08f2748ef366198edca1194c2c8f1cd1667127c Signed-off-by: Rakesh Iyer (cherry picked from commit b097592bea3ab2d2b8d7e4faecab4e30d540fb3d) Reviewed-on: http://git-master/r/188775 Tested-by: Peter Zu Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Jon Mayo --- drivers/video/tegra/fb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'drivers/video/tegra/fb.c') diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c index fd1d6a420168..82a719fc1b89 100644 --- a/drivers/video/tegra/fb.c +++ b/drivers/video/tegra/fb.c @@ -57,6 +57,8 @@ struct tegra_fb_info { int xres; int yres; + int curr_xoffset; + int curr_yoffset; }; /* palette array used by the fbcon */ @@ -311,7 +313,8 @@ static int tegra_fb_pan_display(struct fb_var_screeninfo *var, /* * Do nothing if display parameters are same as current values. */ - if (info->var.yoffset == var->yoffset) + if ((var->xoffset == tegra_fb->curr_xoffset) && + (var->yoffset == tegra_fb->curr_yoffset)) return 0; if (!tegra_fb->win->cur_handle) { @@ -320,6 +323,12 @@ static int tegra_fb_pan_display(struct fb_var_screeninfo *var, info->var.xoffset = var->xoffset; info->var.yoffset = var->yoffset; + /* + * Save previous values of xoffset and yoffset so we can + * pan display only when needed. + */ + tegra_fb->curr_xoffset = var->xoffset; + tegra_fb->curr_yoffset = var->yoffset; addr = info->fix.smem_start + (var->yoffset * info->fix.line_length) + (var->xoffset * (var->bits_per_pixel/8)); -- cgit v1.2.3