@@ -48,6 +48,9 @@ module_param_named(powersave, i915_powersave, int, 0400);
unsigned int i915_lvds_downclock = 0;
module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400);
+unsigned int i915_force_audio = -1;
+module_param_named(force_audio, i915_force_audio, int, 0400);
+
static struct drm_driver driver;
extern int intel_agp_enabled;
@@ -844,6 +844,7 @@ extern int i915_max_ioctl;
extern unsigned int i915_fbpercrtc;
extern unsigned int i915_powersave;
extern unsigned int i915_lvds_downclock;
+extern unsigned int i915_force_audio;
extern int i915_suspend(struct drm_device *dev, pm_message_t state);
extern int i915_resume(struct drm_device *dev);
@@ -736,7 +736,8 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
intel_dp->DP |= DP_PORT_WIDTH_4;
break;
}
- if (intel_dp->has_audio)
+ if (i915_force_audio == 1 ||
+ (i915_force_audio != 0 && intel_dp->has_audio))
intel_dp->DP |= DP_AUDIO_OUTPUT_ENABLE;
memset(intel_dp->link_configuration, 0, DP_LINK_CONFIGURATION_SIZE);
@@ -76,7 +76,8 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder,
if (intel_hdmi->has_hdmi_sink && HAS_PCH_CPT(dev))
sdvox |= HDMI_MODE_SELECT;
- if (intel_hdmi->has_audio)
+ if (i915_force_audio == 1 ||
+ (i915_force_audio != 0 && intel_hdmi->has_audio))
sdvox |= SDVO_AUDIO_ENABLE;
if (intel_crtc->pipe == 1) {