summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/fb.c
diff options
context:
space:
mode:
authorRakesh Iyer <riyer@nvidia.com>2012-08-21 18:25:17 -0700
committerMrutyunjay Sawant <msawant@nvidia.com>2012-09-03 02:44:21 -0700
commitf0a2ca55641520d9a1d86a50e59c202d175c4635 (patch)
tree6da30942867adc67be1d25c5bd04588a510ab319 /drivers/video/tegra/fb.c
parentf04a298e90fee39e8bcc74cbee0ef4e2645ed6da (diff)
video: tegra: dc: support for vblank sync
Add wait for vsync support for one-shot panels. The code supports extension of this feature to other panels. Bug 1033411. Change-Id: Ie4d6cb45e5de81083458169ccdfa33230235ed72 Signed-off-by: Rakesh Iyer <riyer@nvidia.com> Reviewed-on: http://git-master/r/128927 Reviewed-by: Mrutyunjay Sawant <msawant@nvidia.com> Tested-by: Mrutyunjay Sawant <msawant@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/fb.c')
-rw-r--r--drivers/video/tegra/fb.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c
index a9964946f2cc..69b30884e4df 100644
--- a/drivers/video/tegra/fb.c
+++ b/drivers/video/tegra/fb.c
@@ -325,8 +325,10 @@ static void tegra_fb_imageblit(struct fb_info *info,
static int tegra_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
{
+ struct tegra_fb_info *tegra_fb = (struct tegra_fb_info *)info->par;
struct tegra_fb_modedb modedb;
struct fb_modelist *modelist;
+ struct fb_vblank vblank = {};
int i;
switch (cmd) {
@@ -369,6 +371,17 @@ static int tegra_fb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long
return -EFAULT;
break;
+ case FBIOGET_VBLANK:
+ tegra_dc_get_fbvblank(tegra_fb->win->dc, &vblank);
+
+ if (copy_to_user(
+ (void __user *)arg, &vblank, sizeof(vblank)))
+ return -EFAULT;
+ break;
+
+ case FBIO_WAITFORVSYNC:
+ return tegra_dc_wait_for_vsync(tegra_fb->win->dc);
+
default:
return -ENOTTY;
}