[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <141a3320-ff65-459f-9d00-c8bed691dcfc@sirena.org.uk>
Date: Mon, 20 Mar 2023 20:54:23 +0000
From: Mark Brown <broonie@...nel.org>
To: Marian Postevca <posteuca@...ex.one>
Cc: Takashi Iwai <tiwai@...e.com>, Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>, linux-kernel@...r.kernel.org,
alsa-devel@...a-project.org
Subject: Re: [PATCH 3/4] ASoC: amd: acp: Add machine driver that enables
sound for systems with a ES8336 codec
On Mon, Mar 20, 2023 at 10:35:18PM +0200, Marian Postevca wrote:
> +static int acp_asoc_suspend_pre(struct snd_soc_card *card)
> +{
> + int ret;
> +
> + ret = acp_ops_suspend_pre(card);
> + return ret == 1 ? 0 : ret;
Please write normal conditional statements to improve legibility (or
just have the function that's being called return a directly usable
value?).
> + if (priv->quirk & ES83XX_48_MHZ_MCLK) {
> + dev_dbg(priv->codec_dev, "using a 48Mhz MCLK\n");
> + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
> + &hw_constraint_rates_48mhz);
> + freq = ES83xx_48_MHZ_MCLK_FREQ;
> + } else {
> + dev_dbg(priv->codec_dev, "using a 12.288Mhz MCLK\n");
> + snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
> + &hw_constraint_rates_normal);
> + freq = ES83xx_12288_KHZ_MCLK_FREQ;
> + }
The CODEC driver should be able to set these constraints for itself.
> + ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
> + | SND_SOC_DAIFMT_CBP_CFP);
Set this in the dai_link.
> +static int acp3x_es83xx_speaker_power_event(struct snd_soc_dapm_widget *w,
> + struct snd_kcontrol *kcontrol, int event)
> +{
> + struct acp3x_es83xx_private *priv = get_mach_priv(w->dapm->card);
> +
> + dev_dbg(priv->codec_dev, "speaker power event: %d\n", event);
> + if (SND_SOC_DAPM_EVENT_ON(event))
> + acp3x_es83xx_set_gpios_values(priv, 1, 0);
> + else
> + acp3x_es83xx_set_gpios_values(priv, 0, 1);
Why are these two GPIOs tied together like this?
> +static int acp3x_es83xx_suspend_pre(struct snd_soc_card *card)
> +{
> + struct acp3x_es83xx_private *priv = get_mach_priv(card);
> +
> + dev_dbg(priv->codec_dev, "card suspend\n");
> + snd_soc_component_set_jack(priv->codec, NULL, NULL);
> + return 0;
> +}
That's weird, why do that?
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists