diff options
author | Rakesh Iyer <riyer@nvidia.com> | 2012-12-21 13:18:53 -0800 |
---|---|---|
committer | Mandar Padmawar <mpadmawar@nvidia.com> | 2013-01-07 04:45:30 -0800 |
commit | 2d098d7164d42c1afa841bfa4aeba441f285ce29 (patch) | |
tree | bf3689514e180cd0f3fed5ad9e777ac962c4ff0a /drivers/video/tegra/fb.c | |
parent | f71e7a84cafa74fbc26fe49a0941984141854b99 (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.c | 11 |
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)); |