Hi,
this is a revised patchset to add get_eld op to audio component for communicating more directly between i915 and HD-audio. Currently, the HDMI/DP audio status and ELD are notified and obtained via the hardware-level communication over HD-audio unsolicited event and verbs although the graphics driver holds the exactly same information. As we already have a notification via audio component, this is another step forward; the audio driver fetches directly the audio status and ELD via the new component op.
The patch still doesn't follow the recent kernel doc comment changes in i915_component.h. I'll rebase once when I get the steady branch in drm tree.
The current patchset is found in sound git tree test/hdmi-jack branch.
Takashi
===
v1->v2: * Use modeset lock for get_eld lock, drop av mutex * Return the expected size from get_eld, not the copied size * Add reverse map from a port number to the encoder * Deferred invocation of get_eld from the eld_notify in HDA side * A bit more code refactoring in HDA side * Move audio component accessors to hdac_i915.c
Takashi Iwai (9): drm/i915: Remove superfluous NULL check drm/i915: Add get_eld audio component drm/i915: refactoring audio component functions drm/i915: Add reverse mapping between port and intel_encoder ALSA: hda - Split ELD update code from hdmi_present_sense() ALSA: hda - Use component ops for i915 HDMI/DP audio jack handling ALSA: hda - Do zero-clear in snd_hdmi_parse_eld() itself ALSA: hda - Skip ELD notification during PM process ALSA: hda - Move audio component accesses to hdac_i915.c
drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/intel_audio.c | 59 ++++++--- drivers/gpu/drm/i915/intel_ddi.c | 1 + drivers/gpu/drm/i915/intel_dp.c | 1 + drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_hdmi.c | 2 + include/drm/i915_component.h | 6 + include/sound/hda_i915.h | 14 +++ sound/hda/hdac_i915.c | 66 +++++++++++ sound/pci/hda/hda_eld.c | 1 + sound/pci/hda/patch_hdmi.c | 237 +++++++++++++++++++++++++------------ 11 files changed, 294 insertions(+), 96 deletions(-)