diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2011-08-03 09:22:56 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-08-03 17:43:15 -0700 |
commit | c0864cb39c68696e80657360eba63da5e743b7aa (patch) | |
tree | b78746a6c542923e9d9aa6e829a7f34cc449871b /drivers/gpu/drm/i915/intel_hdmi.c | |
parent | 45187ace97f7b3deb559b25348ccb7e301c158c9 (diff) | |
download | op-kernel-dev-c0864cb39c68696e80657360eba63da5e743b7aa.zip op-kernel-dev-c0864cb39c68696e80657360eba63da5e743b7aa.tar.gz |
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 d43cebd..226ba83 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) intel_set_infoframe(encoder, &avi_if); } +static void intel_hdmi_set_spd_infoframe(struct drm_encoder *encoder) +{ + struct dip_infoframe spd_if; + + memset(&spd_if, 0, sizeof(spd_if)); + spd_if.type = DIP_TYPE_SPD; + spd_if.ver = DIP_VERSION_SPD; + spd_if.len = DIP_LEN_SPD; + strcpy(spd_if.body.spd.vn, "Intel"); + strcpy(spd_if.body.spd.pd, "Integrated gfx"); + spd_if.body.spd.sdi = DIP_SPD_PC; + + intel_set_infoframe(encoder, &spd_if); +} + static void intel_hdmi_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -245,6 +260,7 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder, POSTING_READ(intel_hdmi->sdvox_reg); intel_hdmi_set_avi_infoframe(encoder); + intel_hdmi_set_spd_infoframe(encoder); } static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode) |