[drm/i915] implement drmmode overlay support v3
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Sep 2009 15:50:59 +0000 (17:50 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 10 Sep 2009 15:54:01 +0000 (17:54 +0200)
commit6fd7c15e4bc0e377bd6bbf7442ada02f55c52a37
tree6e29ae4e90164ad3f2568e837b716dd64a51f186
parent943226dd6621e3182fc60dba6d4c1c3a60b48933
[drm/i915] implement drmmode overlay support v3

This implements intel overlay support for kms via a device-specific
ioctl. Thomas Hellstrom brought up the idea of a general ioctl (on
dri-devel). We've reached the conclusion that such an infrastructure
only makes sense when multiple kms overlay implementations exists,
which atm don't (and it doesn't look like this is gonna change).

Open issues:
- Runs in sync with the gpu, i.e. unnecessary waiting. I've decided
  to wait on general page-flipping infrastructure before implementing
  this. Furthermore the hw tends to hang when changing something in
  this area. I left some dummy functions as infrastructure.
- polyphase filtering uses a static table.

Changes since v1:
- fix off-by-one misconception on my side. This fixes fullscreen
  playback.
Changes since v2:
- add underrun detection as spec'ed for i965.
- flush caches properly, fixing visual corruptions.

Tested-By: diego.abelenda@gmail.com (on a 865G)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_overlay.c [new file with mode: 0644]
include/drm/i915_drm.h