aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni.dodonov@intel.com>2012-05-09 14:37:30 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-05-19 16:39:51 -0400
commitf5bbfca3e5aedc7e7b299b48b8ec2509b1052acf (patch)
tree9353012b8da7c99f7281e075da2d9dd232be2101
parent12a13a3389716009db8deb64094656f946e8950d (diff)
drm/i915: move HDMI structs to shared location
Move intel_hdmi data structure and support functions to a shared location, to allow their usage from intel_ddi module. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h19
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c19
2 files changed, 21 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index fd96ffbf501b..afdd74f57d91 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -290,6 +290,19 @@ struct dip_infoframe {
290 } __attribute__ ((packed)) body; 290 } __attribute__ ((packed)) body;
291} __attribute__((packed)); 291} __attribute__((packed));
292 292
293struct intel_hdmi {
294 struct intel_encoder base;
295 u32 sdvox_reg;
296 int ddc_bus;
297 int ddi_port;
298 uint32_t color_range;
299 bool has_hdmi_sink;
300 bool has_audio;
301 enum hdmi_force_audio force_audio;
302 void (*write_infoframe)(struct drm_encoder *encoder,
303 struct dip_infoframe *frame);
304};
305
293static inline struct drm_crtc * 306static inline struct drm_crtc *
294intel_get_crtc_for_pipe(struct drm_device *dev, int pipe) 307intel_get_crtc_for_pipe(struct drm_device *dev, int pipe)
295{ 308{
@@ -329,7 +342,11 @@ extern void intel_attach_broadcast_rgb_property(struct drm_connector *connector)
329 342
330extern void intel_crt_init(struct drm_device *dev); 343extern void intel_crt_init(struct drm_device *dev);
331extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg); 344extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg);
332void intel_dip_infoframe_csum(struct dip_infoframe *avi_if); 345extern struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder);
346extern void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
347 struct drm_display_mode *adjusted_mode);
348extern void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder);
349extern void intel_dip_infoframe_csum(struct dip_infoframe *avi_if);
333extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, 350extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg,
334 bool is_sdvob); 351 bool is_sdvob);
335extern void intel_dvo_init(struct drm_device *dev); 352extern void intel_dvo_init(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 3b0cf7197254..a7871b18c201 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -37,20 +37,7 @@
37#include "i915_drm.h" 37#include "i915_drm.h"
38#include "i915_drv.h" 38#include "i915_drv.h"
39 39
40struct intel_hdmi { 40struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
41 struct intel_encoder base;
42 u32 sdvox_reg;
43 int ddc_bus;
44 int ddi_port;
45 uint32_t color_range;
46 bool has_hdmi_sink;
47 bool has_audio;
48 enum hdmi_force_audio force_audio;
49 void (*write_infoframe)(struct drm_encoder *encoder,
50 struct dip_infoframe *frame);
51};
52
53static struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
54{ 41{
55 return container_of(encoder, struct intel_hdmi, base.base); 42 return container_of(encoder, struct intel_hdmi, base.base);
56} 43}
@@ -302,7 +289,7 @@ static void intel_set_infoframe(struct drm_encoder *encoder,
302 intel_hdmi->write_infoframe(encoder, frame); 289 intel_hdmi->write_infoframe(encoder, frame);
303} 290}
304 291
305static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, 292void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
306 struct drm_display_mode *adjusted_mode) 293 struct drm_display_mode *adjusted_mode)
307{ 294{
308 struct dip_infoframe avi_if = { 295 struct dip_infoframe avi_if = {
@@ -317,7 +304,7 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
317 intel_set_infoframe(encoder, &avi_if); 304 intel_set_infoframe(encoder, &avi_if);
318} 305}
319 306
320static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder) 307void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder)
321{ 308{
322 struct dip_infoframe spd_if; 309 struct dip_infoframe spd_if;
323 310