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.
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?
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