Am 2016-02-22 um 20:10 schrieb Takashi Iwai: > On Mon, 22 Feb 2016 19:58:18 +0100, > Martin Kepplinger wrote: >> >> Am 2016-02-22 um 15:12 schrieb Takashi Iwai: >>> On Mon, 22 Feb 2016 15:02:56 +0100, >>> Martin Kepplinger wrote: >>>>> And how about my questions in the previous mail? Does >>>>> i915_audio_component_get_eld() is called and returns 0? >>>>> And is monitor_present set true or false? >>>> >>>> i915_audio_component_get_eld() returns 0 and monitor_present is 0. >>>>> >>>>> If i915_audio_component_get_eld() is called but returns zero, track >>>>> the code flow there. It means either intel_encoder is NULL or >>>>> intel_dig_port->audio_connector is NULL. >>>> >>>> intel_dig_port->audio_connector is NULL! >>>> >>>> (when called during boot and during HDMI plugin) >>> >>> Interesting. The relevant code flow should be like: >>> >>> intel_audio_codec_enable() >>> -> acomp->audio_ops->pin_eld_notify() >>> -> intel_pin_eld_notify() >>> -> check_presence_and_report() >>> -> hdmi_present_sense() >>> -> sync_eld_via_acomp() >>> -> snd_hdac_acomp_get_eld() >>> -> i915_audio_component_get_eld() >>> >>> So, at first, check whether intel_dig_port in both >>> intel_audio_codec_enable() and i915_audio_component_get_eld() points >>> to the same object address. The audio_connector must be set in >>> intel_audio_codec_enable(), thus basically it must be non-NULL at >>> i915_audio_component_get_eld(), too. >>> >> >> intel_dig_port is *not* the same object in these 2 places. During >> plugin, see: >> >> [ 146.934091] in intel_audio_codec_enable: intel_dig_port is >> ffff8800a1f54000 >> [ 146.934121] in i915_audio_component_get_eld: intel_dig_port is >> ffff880244f7d000 >> >> sorry for the slow responses. I'll try to go back that direction unless >> again someone comes up with other suggestions. > > Thanks, this makes sense. It implies that the digital port mapping is > somehow wrong. There are three places setting dig_port_map[], one in > intel_ddi_init(), one in intel_dp_init() and another in > intel_hdmi_init(). Try to check which function creates which object > assigned to which port number, together with drm.debug=0x0e debug > messages. > without using drm.debug=0x0e, but by printing the kmalloc'ed objects in those 3 functions with ports, I found: 2 of them are running, only during boot: [ 2.322865] intel_hdmi_init: intel_dig_port is ffff880242564000 port 1 [ 2.322999] intel_dp_init: intel_dig_port is ffff880242f30000 port 1 is is correct for them to have both port 1? Any more ideas? _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel