On 8/13/19 1:06 PM, Srinivas Kandagatla wrote:
On 13/08/2019 18:51, Pierre-Louis Bossart wrote:
On 8/13/19 11:50 AM, Srinivas Kandagatla wrote:
Thanks for the review,
On 13/08/2019 15:44, Pierre-Louis Bossart wrote:
On 8/13/19 3:35 AM, Srinivas Kandagatla wrote:
On platforms which have smart speaker amplifiers connected via
soundwire and modeled as aux devices in ASoC, in such usecases machine
driver should be able to get sdw master stream from dai so that it can
use the runtime stream to setup slave streams.
using the _set_sdw_stream? I don't fully get the sequence with the
wording above.
Yes, using set_sdw_stream().
Maybe I am missing something here, but I don't see where the
set_sdw_stream() is called.
sorry for the confusion. It was too quick reply. :-)
I was suppose to say sdw_stream_add_slave() instead of set_sdw_stream().
ok, so get_sdw_stream() and set_sdw_stream() are not meant to be mirrors
or both implemented. It's just a helper to respectively get a context or
set a context but a get-modify-set type of operation is not expected.
Do I get this right?
As Aux device is dailess there is no way to get hold of sdw stream
runtime for slave device associated with it.
Having snd_soc_dai_get_sdw_stream() would help machine driver to get
hold of sdw_stream_runtime from controller dai and setup slave streams
using sdw_stream_add_slave().
thanks,
srini
Also I don't fully get the rule. set_sdw_stream() looks required,
get_sdw_stream() is optional, is this what you are suggesting?
soundwire already as a set function, get function would provide more
flexibility to above configurations.
I am not clear if you are asking for both to be used, or get only or
set only?
It depends on the usecase, in db845c usecase [1] as Aux device is
dai less, machine driver is using get function to get hold of master
stream so that it can setup slave port config.
Looks like there is a typo in above like
This was supposed to be "soundwire already has a set function, get
function would provide more flexibility to above configurations"
[1]
https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/tree/sound/soc/qcom/db845c.c?h=integration-linux-qcomlt
thanks,
srini
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
---
include/sound/soc-dai.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index dc48fe081a20..1e01f4a302e0 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -202,6 +202,7 @@ struct snd_soc_dai_ops {
int (*set_sdw_stream)(struct snd_soc_dai *dai,
void *stream, int direction);
+ void *(*get_sdw_stream)(struct snd_soc_dai *dai, int direction);
/*
* DAI digital mute - optional.
* Called by soc-core to minimise any pops.
@@ -410,4 +411,13 @@ static inline int
snd_soc_dai_set_sdw_stream(struct snd_soc_dai *dai,
return -ENOTSUPP;
}
+static inline void *snd_soc_dai_get_sdw_stream(struct snd_soc_dai
*dai,
+ int direction)
+{
+ if (dai->driver->ops->get_sdw_stream)
+ return dai->driver->ops->get_sdw_stream(dai, direction);
+ else
+ return ERR_PTR(-ENOTSUPP);
+}
+
#endif
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel