summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/fb.c
diff options
context:
space:
mode:
authorRakesh Iyer <riyer@nvidia.com>2012-12-21 13:18:53 -0800
committerMandar Padmawar <mpadmawar@nvidia.com>2013-01-07 04:45:30 -0800
commit2d098d7164d42c1afa841bfa4aeba441f285ce29 (patch)
treebf3689514e180cd0f3fed5ad9e777ac962c4ff0a /drivers/video/tegra/fb.c
parentf71e7a84cafa74fbc26fe49a0941984141854b99 (diff)
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 <riyer@nvidia.com> (cherry picked from commit b097592bea3ab2d2b8d7e4faecab4e30d540fb3d) Reviewed-on: http://git-master/r/188775 Tested-by: Peter Zu <pzu@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/fb.c')
-rw-r--r--drivers/video/tegra/fb.c11
1 files changed, 10 insertions, 1 deletions
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));