diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2012-01-03 11:05:39 -0500 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-01-03 12:31:12 -0500 |
commit | 8ea30864229e54b01ac0e9fe88c4b733a940ec4e (patch) | |
tree | 45d7912ad57216d9e18bef23698d0d099b51cbf2 /drivers/gpu/drm/i915/intel_drv.h | |
parent | 175bd4204e069f8bd855ca3dcf70a78db4410936 (diff) |
drm/i915: add color key support v4
Add new ioctls for getting and setting the current destination color
key. This allows for simple overlay display control by matching a color
key value in the primary plane before blending the overlay on top.
v2: remove unnecessary mutex acquire/release around reg accesses
v3: add support for full color key management
v4: fix copy & paste bug in snb_get_colorkey
don't bother checking min/max values against docs as the docs are likely
wrong (how could we handle 10bpc surface formats?)
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index ed65121989bf..5ac8a164a1ee 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -26,6 +26,7 @@ | |||
26 | #define __INTEL_DRV_H__ | 26 | #define __INTEL_DRV_H__ |
27 | 27 | ||
28 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
29 | #include "i915_drm.h" | ||
29 | #include "i915_drv.h" | 30 | #include "i915_drv.h" |
30 | #include "drm_crtc.h" | 31 | #include "drm_crtc.h" |
31 | #include "drm_crtc_helper.h" | 32 | #include "drm_crtc_helper.h" |
@@ -192,6 +193,10 @@ struct intel_plane { | |||
192 | uint32_t x, uint32_t y, | 193 | uint32_t x, uint32_t y, |
193 | uint32_t src_w, uint32_t src_h); | 194 | uint32_t src_w, uint32_t src_h); |
194 | void (*disable_plane)(struct drm_plane *plane); | 195 | void (*disable_plane)(struct drm_plane *plane); |
196 | int (*update_colorkey)(struct drm_plane *plane, | ||
197 | struct drm_intel_sprite_colorkey *key); | ||
198 | void (*get_colorkey)(struct drm_plane *plane, | ||
199 | struct drm_intel_sprite_colorkey *key); | ||
195 | }; | 200 | }; |
196 | 201 | ||
197 | #define to_intel_crtc(x) container_of(x, struct intel_crtc, base) | 202 | #define to_intel_crtc(x) container_of(x, struct intel_crtc, base) |
@@ -414,4 +419,10 @@ extern void sandybridge_update_wm(struct drm_device *dev); | |||
414 | extern void intel_update_sprite_watermarks(struct drm_device *dev, int pipe, | 419 | extern void intel_update_sprite_watermarks(struct drm_device *dev, int pipe, |
415 | uint32_t sprite_width, | 420 | uint32_t sprite_width, |
416 | int pixel_size); | 421 | int pixel_size); |
422 | |||
423 | extern int intel_sprite_set_colorkey(struct drm_device *dev, void *data, | ||
424 | struct drm_file *file_priv); | ||
425 | extern int intel_sprite_get_colorkey(struct drm_device *dev, void *data, | ||
426 | struct drm_file *file_priv); | ||
427 | |||
417 | #endif /* __INTEL_DRV_H__ */ | 428 | #endif /* __INTEL_DRV_H__ */ |