Skip to content

Commit

Permalink
drm/i915: Enable HDMI audio for monitor with audio support
Browse files Browse the repository at this point in the history
Rely on monitor's audio capability to turn on audio output for HDMI.

Tested-by: Wu Fengguang <[email protected]>
Signed-off-by: Zhenyu Wang <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
  • Loading branch information
zhenyw authored and ickle committed Oct 19, 2010
1 parent a9756bb commit 2e3d600
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/gpu/drm/i915/intel_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ struct intel_hdmi {
u32 sdvox_reg;
int ddc_bus;
bool has_hdmi_sink;
bool has_audio;
};

static struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
Expand Down Expand Up @@ -72,11 +73,12 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder,
if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
sdvox |= SDVO_HSYNC_ACTIVE_HIGH;

if (intel_hdmi->has_hdmi_sink) {
/* Required on CPT */
if (intel_hdmi->has_hdmi_sink && HAS_PCH_CPT(dev))
sdvox |= HDMI_MODE_SELECT;

if (intel_hdmi->has_audio)
sdvox |= SDVO_AUDIO_ENABLE;
if (HAS_PCH_CPT(dev))
sdvox |= HDMI_MODE_SELECT;
}

if (intel_crtc->pipe == 1) {
if (HAS_PCH_CPT(dev))
Expand Down Expand Up @@ -154,13 +156,15 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
enum drm_connector_status status = connector_status_disconnected;

intel_hdmi->has_hdmi_sink = false;
intel_hdmi->has_audio = false;
edid = drm_get_edid(connector,
&dev_priv->gmbus[intel_hdmi->ddc_bus].adapter);

if (edid) {
if (edid->input & DRM_EDID_INPUT_DIGITAL) {
status = connector_status_connected;
intel_hdmi->has_hdmi_sink = drm_detect_hdmi_monitor(edid);
intel_hdmi->has_audio = drm_detect_monitor_audio(edid);
}
connector->display_info.raw_edid = NULL;
kfree(edid);
Expand Down

0 comments on commit 2e3d600

Please sign in to comment.