Re: [PATCH v4 2/2] ASoC: amd: acp: Add support for rt5682s and rt1019 card with hs instance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 5/25/22 15:34, V sujith kumar Reddy wrote:
> We have new platform with rt5682s as a primary codec and rt1019 as an
> amp codec. Add machine struct to register sof audio based sound card
> on such Chrome machine.
> 
> Here we are configuring as a soc mclk master and codec slave.
> 
> Signed-off-by: V sujith kumar Reddy <Vsujithkumar.Reddy@xxxxxxx>
> ---
>  sound/soc/amd/acp-config.c          |  9 ++++
>  sound/soc/amd/acp/acp-mach-common.c | 69 ++++++++++++++++++++++++-----
>  sound/soc/amd/acp/acp-sof-mach.c    | 15 +++++++
>  3 files changed, 82 insertions(+), 11 deletions(-)
> 
> diff --git a/sound/soc/amd/acp-config.c b/sound/soc/amd/acp-config.c
> index ba9e0adacc4a..39ca48be7be9 100644
> --- a/sound/soc/amd/acp-config.c
> +++ b/sound/soc/amd/acp-config.c
> @@ -147,6 +147,15 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_rmb_sof_machines[] = {
>  		.fw_filename = "sof-rmb.ri",
>  		.sof_tplg_filename = "sof-acp-rmb.tplg",
>  	},
> +	{
> +		.id = "RTL5682",
> +		.drv_name = "rt5682s-hs-rt1019",
> +		.pdata = &acp_quirk_data,
> +		.machine_quirk = snd_soc_acpi_codec_list,
> +		.quirk_data = &amp_rt1019,
> +		.fw_filename = "sof-rmb.ri",
> +		.sof_tplg_filename = "sof-acp-rmb.tplg",
> +	},

that means a 3rd entry with the same pair of firmware/topology files?

>  	{},
>  };
>  EXPORT_SYMBOL(snd_soc_acpi_amd_rmb_sof_machines);
> diff --git a/sound/soc/amd/acp/acp-mach-common.c b/sound/soc/amd/acp/acp-mach-common.c
> index a03b396d96bb..4aad3fee51cf 100644
> --- a/sound/soc/amd/acp/acp-mach-common.c
> +++ b/sound/soc/amd/acp/acp-mach-common.c
> @@ -148,10 +148,15 @@ static int acp_card_hs_startup(struct snd_pcm_substream *substream)
>  	struct snd_soc_card *card = rtd->card;
>  	struct acp_card_drvdata *drvdata = card->drvdata;
>  	struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
> -	int ret;
> +	unsigned int fmt = 0;

fmt initialization is overridden below.

> +	int ret = 0;

useless init...

>  
> -	ret =  snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
> -				   | SND_SOC_DAIFMT_CBP_CFP);
> +	if (drvdata->soc_mclk)
> +		fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBC_CFC;
> +	else
> +		fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBP_CFP;
> +
> +	ret =  snd_soc_dai_set_fmt(codec_dai, fmt);

... overridden here

>  	if (ret < 0) {
>  		dev_err(rtd->card->dev, "Failed to set dai fmt: %d\n", ret);
>  		return ret;




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux