aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index ef61fe9507e2..c9b1b97ab792 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -110,6 +110,25 @@ struct intel_output {
110 int clone_mask; 110 int clone_mask;
111}; 111};
112 112
113struct intel_crtc;
114struct intel_overlay {
115 struct drm_device *dev;
116 struct intel_crtc *crtc;
117 struct drm_i915_gem_object *vid_bo;
118 struct drm_i915_gem_object *old_vid_bo;
119 int active;
120 int pfit_active;
121 u32 pfit_vscale_ratio; /* shifted-point number, (1<<12) == 1.0 */
122 u32 color_key;
123 u32 brightness, contrast, saturation;
124 u32 old_xscale, old_yscale;
125 /* register access */
126 u32 flip_addr;
127 struct drm_i915_gem_object *reg_bo;
128 void *virt_addr;
129 int hw_wedged;
130};
131
113struct intel_crtc { 132struct intel_crtc {
114 struct drm_crtc base; 133 struct drm_crtc base;
115 enum pipe pipe; 134 enum pipe pipe;
@@ -121,6 +140,7 @@ struct intel_crtc {
121 bool busy; /* is scanout buffer being updated frequently? */ 140 bool busy; /* is scanout buffer being updated frequently? */
122 struct timer_list idle_timer; 141 struct timer_list idle_timer;
123 bool lowfreq_avail; 142 bool lowfreq_avail;
143 struct intel_overlay *overlay;
124}; 144};
125 145
126#define to_intel_crtc(x) container_of(x, struct intel_crtc, base) 146#define to_intel_crtc(x) container_of(x, struct intel_crtc, base)
@@ -148,6 +168,7 @@ intel_dp_set_m_n(struct drm_crtc *crtc, struct drm_display_mode *mode,
148extern void intel_edp_link_config (struct intel_output *, int *, int *); 168extern void intel_edp_link_config (struct intel_output *, int *, int *);
149 169
150 170
171extern int intel_panel_fitter_pipe (struct drm_device *dev);
151extern void intel_crtc_load_lut(struct drm_crtc *crtc); 172extern void intel_crtc_load_lut(struct drm_crtc *crtc);
152extern void intel_encoder_prepare (struct drm_encoder *encoder); 173extern void intel_encoder_prepare (struct drm_encoder *encoder);
153extern void intel_encoder_commit (struct drm_encoder *encoder); 174extern void intel_encoder_commit (struct drm_encoder *encoder);
@@ -183,4 +204,11 @@ extern int intel_framebuffer_create(struct drm_device *dev,
183 struct drm_framebuffer **fb, 204 struct drm_framebuffer **fb,
184 struct drm_gem_object *obj); 205 struct drm_gem_object *obj);
185 206
207extern void intel_setup_overlay(struct drm_device *dev);
208extern void intel_cleanup_overlay(struct drm_device *dev);
209extern int intel_overlay_switch_off(struct intel_overlay *overlay);
210extern int intel_overlay_put_image(struct drm_device *dev, void *data,
211 struct drm_file *file_priv);
212extern int intel_overlay_attrs(struct drm_device *dev, void *data,
213 struct drm_file *file_priv);
186#endif /* __INTEL_DRV_H__ */ 214#endif /* __INTEL_DRV_H__ */