From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Martin Kepplinger <martink@posteo.de>,
alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org,
linux-kernel@vger.kernel.org, perex@perex.cz, han.lu@intel.com,
treding@nvidia.com, david.henningsson@canonical.com
Subject: Re: [Intel-gfx] [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915
Date: Tue, 23 Feb 2016 19:14:47 +0200 [thread overview]
Message-ID: <20160223171447.GL23290@intel.com> (raw)
In-Reply-To: <s5hio1ffjp7.wl-tiwai@suse.de>
On Tue, Feb 23, 2016 at 05:57:40PM +0100, Takashi Iwai wrote:
> On Mon, 22 Feb 2016 22:37:28 +0100,
> Martin Kepplinger wrote:
> >
> > 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?
>
> Adding intel-gfx ML to Cc.
>
> Martin, is the machine SandyBridge or IvyBridge?
>
> In anyway it's PCH_SPLIT and there can call both intel_hdmi_init() and
> intel_dp_init() for the same port although both functions map
> intel_dig_port[]. The assumption of intel_dig_port[] reverse mapping
> is that there is only a single intel_dig_port assigned to a port, but
> this doesn't look correct...
On pre-HSW there can indeed be two encoders for the same port.
And I'm planning to change HSW+ to follow that model as well,
but I've been busy with other stuff to finish off that work [1]
[1] https://lists.freedesktop.org/archives/intel-gfx/2015-December/082384.html
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2016-02-23 17:14 UTC|newest]
Thread overview: 24+ 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-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
2016-02-22 14:12 ` Takashi Iwai
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 17:09 ` Martin Kepplinger
2016-02-23 17:14 ` Ville Syrjälä [this message]
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=20160223171447.GL23290@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=david.henningsson@canonical.com \
--cc=han.lu@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martink@posteo.de \
--cc=perex@perex.cz \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).