diff options
| author | Eugeni Dodonov <eugeni.dodonov@intel.com> | 2012-05-09 14:37:30 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-05-19 16:39:51 -0400 |
| commit | f5bbfca3e5aedc7e7b299b48b8ec2509b1052acf (patch) | |
| tree | 9353012b8da7c99f7281e075da2d9dd232be2101 | |
| parent | 12a13a3389716009db8deb64094656f946e8950d (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.h | 19 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 19 |
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 | ||
| 293 | struct 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 | |||
| 293 | static inline struct drm_crtc * | 306 | static inline struct drm_crtc * |
| 294 | intel_get_crtc_for_pipe(struct drm_device *dev, int pipe) | 307 | intel_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 | ||
| 330 | extern void intel_crt_init(struct drm_device *dev); | 343 | extern void intel_crt_init(struct drm_device *dev); |
| 331 | extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg); | 344 | extern void intel_hdmi_init(struct drm_device *dev, int sdvox_reg); |
| 332 | void intel_dip_infoframe_csum(struct dip_infoframe *avi_if); | 345 | extern struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); |
| 346 | extern void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, | ||
| 347 | struct drm_display_mode *adjusted_mode); | ||
| 348 | extern void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder); | ||
| 349 | extern void intel_dip_infoframe_csum(struct dip_infoframe *avi_if); | ||
| 333 | extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, | 350 | extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, |
| 334 | bool is_sdvob); | 351 | bool is_sdvob); |
| 335 | extern void intel_dvo_init(struct drm_device *dev); | 352 | extern 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 | ||
| 40 | struct intel_hdmi { | 40 | struct 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 | |||
| 53 | static 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 | ||
| 305 | static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder, | 292 | void 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 | ||
| 320 | static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder) | 307 | void 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 | ||
