]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
drm/i915: always update ELD connector type after get modes
authorJani Nikula <jani.nikula@intel.com>
Tue, 19 Sep 2017 15:38:13 +0000 (18:38 +0300)
committerSeth Forshee <seth.forshee@canonical.com>
Thu, 19 Oct 2017 14:49:17 +0000 (09:49 -0500)
commitdb32fc5912662daa73646079d6c60c82b3fd1294
tree59d4f64c8548a64e6f8923bc15d8273ad8f9a827
parenteae4d9106b133e94a40e20b2858d57641bcf3d00
drm/i915: always update ELD connector type after get modes

BugLink: http://bugs.launchpad.net/bugs/1723145
commit 2d8f63297b9f0b430c96329893667c0bfdcbd47e upstream.

drm_edid_to_eld() initializes the connector ELD to zero, overwriting the
ELD connector type initialized in intel_audio_codec_enable(). If
userspace does getconnector and thus get_modes after modeset, a
subsequent audio component i915_audio_component_get_eld() call will
receive an ELD without the connector type properly set. It's fine for
HDMI, but screws up audio for DP.

Always set the ELD connector type at intel_connector_update_modes()
based on the connector type. We can drop the connector type update from
intel_audio_codec_enable().

Credits to Joseph Nuzman <jnuzman@gmail.com> for figuring this out.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Joseph Nuzman <jnuzman@gmail.com>
Reported-by: Joseph Nuzman <jnuzman@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101583
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Joseph Nuzman <jnuzman@gmail.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170919153813.29808-1-jani.nikula@intel.com
(cherry picked from commit d81fb7fd9436e81fda67e5bc8ed0713aa28d3db2)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
drivers/gpu/drm/i915/intel_audio.c
drivers/gpu/drm/i915/intel_modes.c