Message ID | 20191025224122.7718-9-pierre-louis.bossart@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4a94940988cc44adeb383401dea0beeac4abbe63 |
Headers | show |
Series | ASoC: SOF: enable S0ix support for Intel platforms | expand |
On 2019-10-26 00:41, Pierre-Louis Bossart wrote: > From: Keyon Jie <yang.jie@linux.intel.com> > > Add stream token SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 and > SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 to denote if the stream can be > opened at low power d0i3 status or not. > > Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> By any chance, can stream be playback D0ix incompatible but capture D0ix compatible? Single token would suffice, no?
On 10/29/19 5:11 AM, Cezary Rojewski wrote: > On 2019-10-26 00:41, Pierre-Louis Bossart wrote: >> From: Keyon Jie <yang.jie@linux.intel.com> >> >> Add stream token SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 and >> SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 to denote if the stream can be >> opened at low power d0i3 status or not. >> >> Signed-off-by: Keyon Jie <yang.jie@linux.intel.com> >> Signed-off-by: Pierre-Louis Bossart >> <pierre-louis.bossart@linux.intel.com> > > By any chance, can stream be playback D0ix incompatible but capture D0ix > compatible? Single token would suffice, no? we discussed this on github. If we generalize this to low-power streaming, it's possible to have a case where the buffering is not suitable on capture but suitable on playback, or vice-versa, so we added two tokens.
diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h index d65406f34361..76883e6fb750 100644 --- a/include/uapi/sound/sof/tokens.h +++ b/include/uapi/sound/sof/tokens.h @@ -113,6 +113,10 @@ /* ESAI */ #define SOF_TKN_IMX_ESAI_MCLK_ID 1100 +/* Stream */ +#define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 1200 +#define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 1201 + /* Led control for mute switches */ #define SOF_TKN_MUTE_LED_USE 1300 #define SOF_TKN_MUTE_LED_DIRECTION 1301 diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index b3ab6f23fc93..121e5d6f8477 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -567,6 +567,16 @@ static const struct sof_topology_token pcm_tokens[] = { offsetof(struct sof_ipc_comp_host, dmac_config), 0}, }; +/* PCM */ +static const struct sof_topology_token stream_tokens[] = { + {SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3, + SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16, + offsetof(struct snd_sof_pcm, stream[0].d0i3_compatible), 0}, + {SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3, + SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16, + offsetof(struct snd_sof_pcm, stream[1].d0i3_compatible), 0}, +}; + /* Generic components */ static const struct sof_topology_token comp_tokens[] = { {SOF_TKN_COMP_PERIOD_SINK_COUNT,