Re: [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915

From: Martin Kepplinger
Date: Fri Feb 12 2016 - 08:11:07 EST


Am 2016-02-11 um 10:06 schrieb Takashi Iwai:
> On Wed, 10 Feb 2016 18:21:11 +0100,
> Martin Kepplinger wrote:
>>
>> Am 2016-02-09 um 12:44 schrieb Takashi Iwai:
>>> On Tue, 09 Feb 2016 07:34:48 +0100,
>>> Martin Kepplinger wrote:
>>>>
>>>> The following change:
>>>>
>>>> 788d441 ALSA: hda - Use component ops for i915 HDMI/DP audio jack handling
>>>>
>>>> breaks audio over HDMI on my snd_hda_intel laptop. It is the first bad
>>>> commit.
>>>>
>>>> This was merged for -rc1 and isn't fixed until now, so I got nervous.
>>>> There are
>>>> no errors in the log that stand out. I'm no sound or alsa developer, and
>>>> just reverting it isn't easy since there is stuff depending on this.
>>>>
>>>> I'm happy to test possible fixes and hope v4.5 not to ship with such a big
>>>> regression ;)
>>>
>>> Could you give a bit more detail about your hardware? At best, give
>>> alsa-info.sh output (run with --no-upload option). Also, give the
>>> output of dmesg, too.
>>>
>>> In addition, what shows /proc/asound/card*/eld#*.* files? Does any of
>>> it show the proper connection state and ELD?
>>
>> alsa-info and dmesg are appended, and
>>
>> root@laptop:/home/martin/dev# cat /proc/asound/card*/eld#*
>> monitor_present 0
>> eld_valid 0
>
> OK, then could you put some debug print in intel_pin_eld_notify() in
> sound/pci/hda/patch_hdmi.c? This is the callback to be called by i915
> driver at enabling / disabling HDMI/DP audio.

intel_pin_eld_notify() is called during HDMI plugin with

audio_ptr: ffff880242ea8800, port 1

and doesn't return early.

> (Also, to be sure, check whether snd_hdac_i915_register_notifier() in
> sound/hda/hda_i915.c is called, too.)

snd_hdac_i915_register_notifier() is called during boot.

>
> If intel_pin_eld_notify() is registered but never called, it implies
> something wrong in i915 driver side. If it gets called, we need to
> track down: what port value was passed there, and how
> hdmi_present_sense() and sync_eld_via_acomp() behave there.

I'll try to look at said path, if you have no other idea in the meantime.

>
>
> thanks,
>
> Takashi
>