Re: [RFC PATCH 1/2] soundwire: add support for static port mapping

From: Vinod Koul
Date: Mon Feb 01 2021 - 05:27:59 EST


On 25-01-21, 16:23, Srinivas Kandagatla wrote:
>
>
> On 22/01/2021 16:42, Pierre-Louis Bossart wrote:
> > > >
> > > > if you completely remove the stream and re-add it with updated
> > > > configuration things should work.
> > >
> > > That's exactly what we do currently!
> > >
> > > The updated ports due to new configuration ex: for "mic capture"
> > > dailink needs to be communicated from slave(codec) to master so that
> > > it can allocate correct ports. That is what this patch is trying to
> > > do (share current port map information).
> >
> > .. we have a disconnect on how to do this configuration update.
> >
> > The 'stream' support was designed so that a stream can be split across
> > multiple devices (both masters and slaves). With this design we need to
> > have a central configuration and distribute the information to all
> > devices taking part of the stream.

That is correct, but in this case a stream consists of one master and
one or more slave devices. This is not a multi-master design. The adding
of multiple masters should not be done here... that does not seem
logically right in this situation

> > It seems you are in a different solution-space, where the codec driver
> > needs to notify the master of which ports it needs to use?
>
> Correct! As Codec is the place where we have mixer controls ant it can
> clearly tell which master ports should be used for that particular
> configuration.

And that should come from firmware (DT etc) and driver should pass on
this info

> > I also don't see where the mapping is actually set. Patch 2 uses a
> > mapping but there's no codec driver change that defines the mapping?
> >
> > Do you actually call sdw_stream_add_slave() with a new mapping?
> >
> Yes, currently am working on a codec driver for WCD938x Codec, which I will
> posting very soon!
>
> > It feels we are missing the codec part to really see what you are trying
> > to do?
> My WIP code is at https://git.linaro.org/people/srinivas.kandagatla/linux.git/tree/sound/soc/codecs/wcd938x.c?h=wcd938x/wip#n4526
>
> Currently the master ports are hardcoded in the driver for now, but these
> will come from DT.
>
> --srini

--
~Vinod