lkml.org 
[lkml]   [2021]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.14 102/252] ASoC: Intel: update sof_pcm512x quirks
    Date
    From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

    [ Upstream commit 22414cade8dfec25ab94df52b3a4f7aa8edb6120 ]

    The default SOF topology enables SSP capture and DMICs, even though
    both of these hardware capabilities are not always available in
    hardware (specific versions of HiFiberry and DMIC kit needed).

    For the SSP capture, this leads to annoying "SP5-Codec: ASoC: no
    backend capture" and "streamSSP5-Codec: ASoC: no users capture at
    close - state 0" errors.

    Update the quirks to match what the topology needs, which also allows
    for the ability to remove SSP capture and DMIC support.

    BugLink: https://github.com/thesofproject/linux/issues/3061
    Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    Link: https://lore.kernel.org/r/20210802152151.15832-4-pierre-louis.bossart@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/intel/boards/sof_pcm512x.c | 13 +++++++++++--
    1 file changed, 11 insertions(+), 2 deletions(-)

    diff --git a/sound/soc/intel/boards/sof_pcm512x.c b/sound/soc/intel/boards/sof_pcm512x.c
    index 2ec9c62366e2..6815204e58d5 100644
    --- a/sound/soc/intel/boards/sof_pcm512x.c
    +++ b/sound/soc/intel/boards/sof_pcm512x.c
    @@ -26,11 +26,16 @@

    #define SOF_PCM512X_SSP_CODEC(quirk) ((quirk) & GENMASK(3, 0))
    #define SOF_PCM512X_SSP_CODEC_MASK (GENMASK(3, 0))
    +#define SOF_PCM512X_ENABLE_SSP_CAPTURE BIT(4)
    +#define SOF_PCM512X_ENABLE_DMIC BIT(5)

    #define IDISP_CODEC_MASK 0x4

    /* Default: SSP5 */
    -static unsigned long sof_pcm512x_quirk = SOF_PCM512X_SSP_CODEC(5);
    +static unsigned long sof_pcm512x_quirk =
    + SOF_PCM512X_SSP_CODEC(5) |
    + SOF_PCM512X_ENABLE_SSP_CAPTURE |
    + SOF_PCM512X_ENABLE_DMIC;

    static bool is_legacy_cpu;

    @@ -244,8 +249,9 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
    links[id].dpcm_playback = 1;
    /*
    * capture only supported with specific versions of the Hifiberry DAC+
    - * links[id].dpcm_capture = 1;
    */
    + if (sof_pcm512x_quirk & SOF_PCM512X_ENABLE_SSP_CAPTURE)
    + links[id].dpcm_capture = 1;
    links[id].no_pcm = 1;
    links[id].cpus = &cpus[id];
    links[id].num_cpus = 1;
    @@ -380,6 +386,9 @@ static int sof_audio_probe(struct platform_device *pdev)

    ssp_codec = sof_pcm512x_quirk & SOF_PCM512X_SSP_CODEC_MASK;

    + if (!(sof_pcm512x_quirk & SOF_PCM512X_ENABLE_DMIC))
    + dmic_be_num = 0;
    +
    /* compute number of dai links */
    sof_audio_card_pcm512x.num_links = 1 + dmic_be_num + hdmi_num;

    --
    2.30.2
    \
     
     \ /
      Last update: 2021-09-09 13:50    [W:2.247 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site