From: Martin Kepplinger <martink@posteo.de>
To: Takashi Iwai <tiwai@suse.de>
Cc: libin.yang@intel.com, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org, han.lu@intel.com,
treding@nvidia.com, david.henningsson@canonical.com
Subject: Re: [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915
Date: Mon, 22 Feb 2016 15:02:56 +0100 [thread overview]
Message-ID: <56CB1510.4010503@posteo.de> (raw)
In-Reply-To: <s5hr3g52fud.wl-tiwai@suse.de>
Am 2016-02-22 um 11:34 schrieb Takashi Iwai:
> On Mon, 22 Feb 2016 11:24:05 +0100,
> Martin Kepplinger wrote:
>>
>> Am 2016-02-12 um 17:16 schrieb Takashi Iwai:
>>> On Fri, 12 Feb 2016 16:54:44 +0100,
>>> Martin Kepplinger wrote:
>>>>
>>>> Am 2016-02-12 um 14:49 schrieb Takashi Iwai:
>>>>> On Fri, 12 Feb 2016 14:09:36 +0100,
>>>>> Martin Kepplinger wrote:
>>>>>>
>>>>>> 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.
>>>>>
>>>>> OK, so it was processed but the ELD wasn't updated by some reason.
>>>>>
>>>>>>> (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.
>>>>>
>>>>> Put some debug prints in sync_eld_via_acomp(), e.g. check whether
>>>>> snd_hdac_acomp_get_eld() returns an error or snd_hdmi_parse_eld()
>>>>> returns an error. If you got an error, track down more deeply.
>>>>>
>>>>> For example, the former function is defined in sound/hda/hdac_i915.c,
>>>>> and it calls the function i915_audio_component_get_eld() in
>>>>> drivers/gpu/drm/i915/intel_audio.c. You can follow what returns an
>>>>> error.
>>>>>
>>>>> Similarly, the latter function is defined in sound/pci/hda/hda_eld.c.
>>>>> Usually you see a kernel message for parse errors, so I guess this
>>>>> isn't the case, though.
>>>>>
>>>>
>>>> no error in either of the functions. size is always 0, after boot and
>>>> after HDMI plugin. is that normal?
>>>
>>> No, it means that no connection is reported back. Check the call of
>>> i915_audio_component_get_eld() as mentioned in the above.
>>> Does it return 0? Also I suppose monitor_present is set to false?
>>> If so, it implies that intel_audio_codec_enable() isn't called.
>>>
>>> When the above is true, boot with drm.debug=0x0e, and give the kernel
>>> messages.
>>>
>>
>> The above is true and -rc5 didn't fix the problem. I append "dmesg|grep
>> drm" with drm.debug=0x0e. HDMI is plugged in at about 90 seconds in.
>
> 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)
I'll follow it more, but I'm just posting in case anyone finds the
mistake early.
thanks!
>
>
> Takashi
>
WARNING: multiple messages have this Message-ID (diff)
From: Martin Kepplinger <martink@posteo.de>
To: Takashi Iwai <tiwai@suse.de>
Cc: david.henningsson@canonical.com, han.lu@intel.com,
libin.yang@intel.com, treding@nvidia.com, perex@perex.cz,
alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: Re: [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915
Date: Mon, 22 Feb 2016 15:02:56 +0100 [thread overview]
Message-ID: <56CB1510.4010503@posteo.de> (raw)
In-Reply-To: <s5hr3g52fud.wl-tiwai@suse.de>
Am 2016-02-22 um 11:34 schrieb Takashi Iwai:
> On Mon, 22 Feb 2016 11:24:05 +0100,
> Martin Kepplinger wrote:
>>
>> Am 2016-02-12 um 17:16 schrieb Takashi Iwai:
>>> On Fri, 12 Feb 2016 16:54:44 +0100,
>>> Martin Kepplinger wrote:
>>>>
>>>> Am 2016-02-12 um 14:49 schrieb Takashi Iwai:
>>>>> On Fri, 12 Feb 2016 14:09:36 +0100,
>>>>> Martin Kepplinger wrote:
>>>>>>
>>>>>> 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.
>>>>>
>>>>> OK, so it was processed but the ELD wasn't updated by some reason.
>>>>>
>>>>>>> (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.
>>>>>
>>>>> Put some debug prints in sync_eld_via_acomp(), e.g. check whether
>>>>> snd_hdac_acomp_get_eld() returns an error or snd_hdmi_parse_eld()
>>>>> returns an error. If you got an error, track down more deeply.
>>>>>
>>>>> For example, the former function is defined in sound/hda/hdac_i915.c,
>>>>> and it calls the function i915_audio_component_get_eld() in
>>>>> drivers/gpu/drm/i915/intel_audio.c. You can follow what returns an
>>>>> error.
>>>>>
>>>>> Similarly, the latter function is defined in sound/pci/hda/hda_eld.c.
>>>>> Usually you see a kernel message for parse errors, so I guess this
>>>>> isn't the case, though.
>>>>>
>>>>
>>>> no error in either of the functions. size is always 0, after boot and
>>>> after HDMI plugin. is that normal?
>>>
>>> No, it means that no connection is reported back. Check the call of
>>> i915_audio_component_get_eld() as mentioned in the above.
>>> Does it return 0? Also I suppose monitor_present is set to false?
>>> If so, it implies that intel_audio_codec_enable() isn't called.
>>>
>>> When the above is true, boot with drm.debug=0x0e, and give the kernel
>>> messages.
>>>
>>
>> The above is true and -rc5 didn't fix the problem. I append "dmesg|grep
>> drm" with drm.debug=0x0e. HDMI is plugged in at about 90 seconds in.
>
> 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)
I'll follow it more, but I'm just posting in case anyone finds the
mistake early.
thanks!
>
>
> Takashi
>
next prev parent reply other threads:[~2016-02-22 14:04 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-09 6:34 [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915 Martin Kepplinger
2016-02-09 11:44 ` Takashi Iwai
2016-02-09 11:44 ` Takashi Iwai
2016-02-10 14:47 ` Yang, Libin
2016-02-10 17:21 ` Martin Kepplinger
2016-02-11 9:06 ` Takashi Iwai
2016-02-12 13:09 ` Martin Kepplinger
2016-02-12 13:49 ` Takashi Iwai
2016-02-12 15:54 ` Martin Kepplinger
2016-02-12 16:16 ` Takashi Iwai
2016-02-22 10:24 ` Martin Kepplinger
2016-02-22 10:34 ` Takashi Iwai
2016-02-22 14:02 ` Martin Kepplinger [this message]
2016-02-22 14:02 ` Martin Kepplinger
2016-02-22 14:12 ` Takashi Iwai
2016-02-22 14:12 ` Takashi Iwai
2016-02-22 18:58 ` Martin Kepplinger
2016-02-22 18:58 ` Martin Kepplinger
2016-02-22 19:10 ` Takashi Iwai
2016-02-22 21:37 ` Martin Kepplinger
2016-02-23 16:57 ` Takashi Iwai
2016-02-23 16:57 ` Takashi Iwai
2016-02-23 17:09 ` Martin Kepplinger
2016-02-23 17:14 ` Ville Syrjälä
2016-02-23 17:14 ` [Intel-gfx] " Ville Syrjälä
2016-02-23 19:09 ` Martin Kepplinger
2016-02-23 19:09 ` [Intel-gfx] " Martin Kepplinger
2016-02-24 7:51 ` Takashi Iwai
2016-02-24 9:13 ` Takashi Iwai
2016-02-24 12:18 ` Martin Kepplinger
2016-02-24 14:28 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56CB1510.4010503@posteo.de \
--to=martink@posteo.de \
--cc=alsa-devel@alsa-project.org \
--cc=david.henningsson@canonical.com \
--cc=han.lu@intel.com \
--cc=libin.yang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tiwai@suse.de \
--cc=treding@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.