All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Yang, Libin" <libin.yang@intel.com>
Cc: "Lin, Mengdong" <mengdong.lin@intel.com>,
	"libin.yang@linux.intel.com" <libin.yang@linux.intel.com>,
	"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Subject: Re: [RFC PATCH 0/3] support DP MST audio
Date: Tue, 27 Sep 2016 09:58:43 +0200	[thread overview]
Message-ID: <s5hr385ojt8.wl-tiwai@suse.de> (raw)
In-Reply-To: <96A12704CE18D347B625EE2D4A099D194FA3011E@SHSMSX103.ccr.corp.intel.com>

On Tue, 27 Sep 2016 09:47:38 +0200,
Yang, Libin wrote:
> 
> Hi Takashi,
> 
> > -----Original Message-----
> > From: Takashi Iwai [mailto:tiwai@suse.de]
> > Sent: Tuesday, September 27, 2016 1:51 AM
> > To: Yang, Libin <libin.yang@intel.com>
> > Cc: libin.yang@linux.intel.com; alsa-devel@alsa-project.org; Lin, Mengdong
> > <mengdong.lin@intel.com>
> > Subject: Re: [alsa-devel] [RFC PATCH 0/3] support DP MST audio
> > 
> > On Mon, 26 Sep 2016 18:07:51 +0200,
> > Yang, Libin wrote:
> > >
> > > Hi Takashi,
> > >
> > > > -----Original Message-----
> > > > From: Takashi Iwai [mailto:tiwai@suse.de]
> > > > Sent: Monday, September 26, 2016 11:11 PM
> > > > To: libin.yang@linux.intel.com
> > > > Cc: alsa-devel@alsa-project.org; Lin, Mengdong
> > > > <mengdong.lin@intel.com>; Yang, Libin <libin.yang@intel.com>
> > > > Subject: Re: [alsa-devel] [RFC PATCH 0/3] support DP MST audio
> > > >
> > > > On Mon, 26 Sep 2016 10:35:35 +0200,
> > > > libin.yang@linux.intel.com wrote:
> > > > >
> > > > > From: Libin Yang <libin.yang@linux.intel.com>
> > > > >
> > > > > This patchset starts to support DP MST audio.
> > > > >
> > > > > This patchset is based on drm-intel-nightly on
> > > > > git://anongit.freedesktop.org/drm-intel
> > > > >
> > > > > Libin Yang (3):
> > > > >   ALSA: hda - codec add DP MST support for connection list
> > > > >   ALSA: hda - add DP mst verb support
> > > > >   ALSA: hda - add DP mst audio support
> > > >
> > > > I read the patchset again, and I'm still not convinced enough by this
> > change.
> > >
> > > Yes and I'm sorry that this patchset is delayed for a long time.
> > > Our gfx driver has been redesigned and some APIs have been changed.
> > > The change is done in Pandiyan, Dhinakaran's patches:
> > > Patchset: Prep. for DP audio MST support
> > >   drm/i915: Standardize port type for DVO encoders
> > >   drm/i915: Store port enum in intel_encoder
> > >   drm/i915: Switch to using port stored in intel_encoder
> > >   drm/i915: Move audio_connector to intel_encoder
> > >   drm/i915: start adding dp mst audio
> > > Patch: drm/i915/dp: DP audio API changes for MST
> > >
> > > >
> > > > The connection list is coded in the current way under the assumption
> > > > that connections are more or less static.  The connections are
> > > > cached in snd_array, which is only for growing up, and not suitable
> > > > for the entries that might be frequently removed.  The removal is
> > > > done only at overriding, and it happens only once at boot.
> > > >
> > > > OTOH, with DP-MST case, the connection list is basically dynamic.
> > > > It may increase or decrease depending on the connected monitors...
> > > > Is my understanding correct?  Or is the DP-MST connection list is
> > > > static, too?  Then I do wonder how it covers the whole connections with
> > arbitrary device indices.
> > >
> > > For the connection list, the driver will setup all the connection list
> > > at the beginning for each device entry, even it is non-MST. We
> > > statically allocate the connection list and will never remove them.
> > 
> > Hrm, so how will it actually be?  Are the device indices fixed through the
> > whole operations, no matter which monitor is connected?  How many will
> > they be?
> > 
> > It'd be helpful if you give an example of the actual typical setup.
> > Then we can judge whether the proposed implementation is suitable.
> 
> Even it is in non-MST mode, the connection list is setup with the per_pin
> initialization.  And as the device entries under the same pin have the
> same connection list, I use the device entry 0's connection list for other
> device entries. This avoids connection list is invalid for other device entries
> in non-MST. After initialization, the connection list will never change even
> the non-MST/MST mode is changed.

The devid=0 case is fine.  This is identical with the normal widget
connections.  But you wrote that these connections are static even for
devid!=0.  Is it correct?

If so, now my question again: for devid!=0, which connections are
given statically?  In other words, how many devid would be passed?

> > > > So, the connection cache management is one thing.  Another thing is
> > > > that the patchset doesn't consider about the pin ELD notification.
> > > > Basically we switched to ELD notification instead of the pin unsol
> > > > event for Intel chips.  How does it fit?
> > >
> > > For the ELD notification, in the patch 0003, if there is monitor
> > > hotplug, gfx driver will notify audio driver with acomp. Gfx driver
> > > will tell which port (pin), pipe (device entry) occurs the hotplug
> > > event. And then audio driver will call snd_hdac_acomp_get_eld() to get the
> > eld information.
> > 
> > OK, then drop the patch 1 and try to implement without messing around the
> > connection list.  The patch 1 is what I really don't like from the beginning.  It
> > makes things complicated.
> 
> As the connection list is the same for the device entries under same pin,
> what do you think if we use the original APIs, ignoring the device id. This
> will not change the connection list code or be a very small change.
> 
> If you agree on that, I will have a try on it.
> 
> On the same time, I will check with our silicon if my understanding
> "the connection list is the same for the device entries under same pin"
> is right.
>
> > Is there anything else than haswell fixup that touches the connection list with
> > the dev id?  If it's the only place, there can be an alternative way to hack it.
> 
> If we always use the device entry 0 as all the device entries under the same pin,
> I think we can ignore the dev id now.

Well, it is only about the pin/cvt connection inside HDMI/DP codec,
and it should be easily covered in a different way even with devid!=0,
I suppose.  That said, the patchset looks way too complex than
necessary.

Though, it might be a good idea to start with devid=0 assumption if it
makes the changes simpler.


Takashi

  reply	other threads:[~2016-09-27  7:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-26  8:35 [RFC PATCH 0/3] support DP MST audio libin.yang
2016-09-26  8:35 ` [RFC PATCH 1/3] ALSA: hda - codec add DP MST support for connection list libin.yang
2016-09-26  8:35 ` [RFC PATCH 2/3] ALSA: hda - add DP mst verb support libin.yang
2016-09-26  8:35 ` [RFC PATCH 3/3] ALSA: hda - add DP mst audio support libin.yang
2016-09-26 15:10 ` [RFC PATCH 0/3] support DP MST audio Takashi Iwai
2016-09-26 16:07   ` Yang, Libin
2016-09-26 17:50     ` Takashi Iwai
2016-09-27  7:47       ` Yang, Libin
2016-09-27  7:58         ` Takashi Iwai [this message]
2016-09-27  8:18           ` Yang, Libin
2016-09-27  8:45             ` Takashi Iwai
2016-09-28  2:50               ` Yang, Libin
2016-09-28  7:57                 ` Takashi Iwai
2016-09-28  8:18                   ` Yang, Libin

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=s5hr385ojt8.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=libin.yang@intel.com \
    --cc=libin.yang@linux.intel.com \
    --cc=mengdong.lin@intel.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.