CHROMIUM: drm/exynos: Propagate controller's enable_vblank() result
authorDaniel Kurtz <djkurtz@chromium.org>
Mon, 25 Mar 2013 13:00:40 +0000 (21:00 +0800)
committerChromeBot <chrome-bot@google.com>
Thu, 28 Mar 2013 02:59:41 +0000 (19:59 -0700)
commita3242794d36925527aa7fe96450103b2c0405ddf
tree323b358894cdcf55740b3f54a7d7ff9b41b51985
parent4270db5ff324cd73732b84cd15e4524640bd93e3
CHROMIUM: drm/exynos: Propagate controller's enable_vblank() result

The controller enable_vblank() can fail if, for example, it is requested
while suspended (fimd) or before the mixer is powered on.

In these cases, the error could should be propagated up to the higher
layers so they can deal with it appropriately (i.e., try again later).

In particular, this solves a race at HDMI hotplug where a userspace
WaitVBlank ioctl races with the hdmi/mixer power on sequence.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
BUG=chromium:223501
TEST=boot w/ HDMI disconnected. Login as guest. Plug HDMI cable.
  Should see extended desktop, pointer should move on external monitor.

Change-Id: Id2c54ce8c1c500bc95321a6b00fa147348c29125
Reviewed-on: https://gerrit.chromium.org/gerrit/46399
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Jeremy Thorpe <jeremyt@chromium.org>
Commit-Queue: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
drivers/gpu/drm/exynos/exynos_drm_crtc.c