lkml.org 
[lkml]   [2020]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 24/57] ASoC: SOF: Intel: add min/max channels for SSP on Baytrail/Broadwell
    Date
    From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

    [ Upstream commit 8c05246c0b58cbe80580ea4be05f6d51228af8a9 ]

    Major regressions were detected by SOF CI on CherryTrail and Broadwell:

    [ 25.705750] SSP2-Codec: ASoC: no backend playback stream
    [ 27.923378] SSP2-Codec: ASoC: no users playback at close - state

    This is root-caused to the introduction of the DAI capability checks
    with snd_soc_dai_stream_valid(). Its use in soc-pcm.c makes it a
    requirement for all DAIs to report at least a non-zero min_channels
    field.

    For some reason the SSP structures used for SKL+ did provide this
    information but legacy platforms didn't.

    Fixes: 9b5db059366ae2 ("ASoC: soc-pcm: dpcm: Only allow playback/capture if supported")
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200417172014.11760-1-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/sof/intel/bdw.c | 16 +++++++++++++
    sound/soc/sof/intel/byt.c | 48 +++++++++++++++++++++++++++++++++++++++
    2 files changed, 64 insertions(+)

    diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
    index 80e2826fb447b..8ede5fd0d0c0f 100644
    --- a/sound/soc/sof/intel/bdw.c
    +++ b/sound/soc/sof/intel/bdw.c
    @@ -520,9 +520,25 @@ static int bdw_probe(struct snd_sof_dev *sdev)
    static struct snd_soc_dai_driver bdw_dai[] = {
    {
    .name = "ssp0-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    {
    .name = "ssp1-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    };

    diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
    index 41008c974ac6c..cdffdc5d40759 100644
    --- a/sound/soc/sof/intel/byt.c
    +++ b/sound/soc/sof/intel/byt.c
    @@ -366,21 +366,69 @@ static int byt_reset(struct snd_sof_dev *sdev)
    static struct snd_soc_dai_driver byt_dai[] = {
    {
    .name = "ssp0-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    {
    .name = "ssp1-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    {
    .name = "ssp2-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + }
    },
    {
    .name = "ssp3-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    {
    .name = "ssp4-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    {
    .name = "ssp5-port",
    + .playback = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    + .capture = {
    + .channels_min = 1,
    + .channels_max = 8,
    + },
    },
    };

    --
    2.20.1
    \
     
     \ /
      Last update: 2022-09-17 16:07    [W:4.284 / U:0.508 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site