On Mon, 21 Nov 2011 14:37:49 +0800, Wu Fengguang fengguang.wu@intel.com wrote:
On monitor hot plug/unplug, update ELD and set/clear SDVO_AUDIO_ENABLE or DP_AUDIO_OUTPUT_ENABLE accordingly. So that the audio driver will receive hot plug events and take action to refresh its device state and ELD contents.
A new callback ->hotplug() is added to struct drm_connector_funcs which will be called immediately after ->detect() knowing that the monitor is either plugged or unplugged.
It's noticed that X may not call ->mode_set() at monitor hot plug, so it's necessary to call drm_edid_to_eld() earlier at ->detect() time rather than in intel_ddc_get_modes(), so that intel_write_eld() can see the new ELD in ->hotplug.
The X environment will eventually call mode_set when the user environment decides to use the monitor. Any audio bits can, and should, await the user's choice of a video mode before choosing the audio format to use. We should not be adding eld information until the monitor is in use.