]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: fixup i915_pipe_enabled check in i915_irq.c
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 21 May 2013 22:50:23 +0000 (00:50 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 31 May 2013 18:54:02 +0000 (20:54 +0200)
commite92ec5c4a8f09480d652087ea3e2ca164ef49c34
tree070a224e0b5df9db240da82405cc4cd7fc4f573d
parent4fae94368b00fdaf850eac6e0bde926b514508f8
drm/i915: fixup i915_pipe_enabled check in i915_irq.c

Well, as well as we can without completely revamping the drm vblank
code. The issue are that
- The vblank code needs to work on both ums and kms.
- It deals always deals with pipes.
- It doesn't take any of the kms locks.

The last part is not really fixable without revamping the drm vblank
code, since the drm core <-> driver interactions is a veritable pile
of spaghettis. But the other pieces can be fixed by switching on the
MODESET driver flag and either checking the hw state directly (ums
case) or just querying our sw tracking (with broken locking, but
that's not worse than what we've had).

Note that this essentially reverts

commit 3bc3a12c5bb42cedf479e68238d84b7e32c6de8d
Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
Date:   Tue Oct 23 18:29:59 2012 -0200

    drm/i915: convert PIPECONF to use transcoder instead of pipe

for the ums case, which will fix a NULL deref (since we really don't
have any crtcs set up).

But the real reason to do this is to drop our reliance on the
cpu_transcoder: By only checking intel_crtc->active we don't need to
make sure that the pipe_config (or at least the cpu_transcoder)
contain safe values even when the pipe is off.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_irq.c