diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2011-08-03 12:22:56 -0400 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-08-03 20:43:15 -0400 |
commit | c0864cb39c68696e80657360eba63da5e743b7aa (patch) | |
tree | b78746a6c542923e9d9aa6e829a7f34cc449871b /drivers/gpu/drm/i915/intel_hdmi.c | |
parent | 45187ace97f7b3deb559b25348ccb7e301c158c9 (diff) |
drm/i915/hdmi: HDMI source product description infoframe support
Set an SPD infoframe if the sink supports it.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_hdmi.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index d43cebdea1ee..226ba830f383 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -201,6 +201,21 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder) | |||
201 | intel_set_infoframe(encoder, &avi_if); | 201 | intel_set_infoframe(encoder, &avi_if); |
202 | } | 202 | } |
203 | 203 | ||
204 | static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder) | ||
205 | { | ||
206 | struct dip_infoframe spd_if; | ||
207 | |||
208 | memset(&spd_if, 0, sizeof(spd_if)); | ||
209 | spd_if.type = DIP_TYPE_SPD; | ||
210 | spd_if.ver = DIP_VERSION_SPD; | ||
211 | spd_if.len = DIP_LEN_SPD; | ||
212 | strcpy(spd_if.body.spd.vn, "Intel"); | ||
213 | strcpy(spd_if.body.spd.pd, "Integrated gfx"); | ||
214 | spd_if.body.spd.sdi = DIP_SPD_PC; | ||
215 | |||
216 | intel_set_infoframe(encoder, &spd_if); | ||
217 | } | ||
218 | |||
204 | static void intel_hdmi_mode_set(struct drm_encoder *encoder, | 219 | static void intel_hdmi_mode_set(struct drm_encoder *encoder, |
205 | struct drm_display_mode *mode, | 220 | struct drm_display_mode *mode, |
206 | struct drm_display_mode *adjusted_mode) | 221 | struct drm_display_mode *adjusted_mode) |
@@ -245,6 +260,7 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder, | |||
245 | POSTING_READ(intel_hdmi->sdvox_reg); | 260 | POSTING_READ(intel_hdmi->sdvox_reg); |
246 | 261 | ||
247 | intel_hdmi_set_avi_infoframe(encoder); | 262 | intel_hdmi_set_avi_infoframe(encoder); |
263 | intel_hdmi_set_spd_infoframe(encoder); | ||
248 | } | 264 | } |
249 | 265 | ||
250 | static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode) | 266 | static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode) |