Re: [PATCH 1/2] ASoC: rt5682s: Add driver for ALC5682I-VS codec

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

 



On Thu, Aug 26, 2021 at 04:09:37PM +0800, derek.fang@xxxxxxxxxxx wrote:

This looks good, a few small mostly style comments below but nothing
substantial:

> +static int rt5682s_sar_power_mode(struct snd_soc_component *component,
> +				int mode, int jd_step)
> +{
> +	struct rt5682s_priv *rt5682s =
> +		snd_soc_component_get_drvdata(component);
> +
> +	mutex_lock(&rt5682s->sar_mutex);
> +
> +	switch (mode) {
> +	case SAR_PWR_SAVING:
> +		snd_soc_component_update_bits(component, RT5682S_CBJ_CTRL_3,
> +			RT5682S_CBJ_IN_BUF_MASK, RT5682S_CBJ_IN_BUF_DIS);

> +	default:
> +		break;
> +	}

Shouldn't there be some sort of warning or error if we get an invalid
mode here?

> +static void rt5682s_enable_push_button_irq(struct snd_soc_component *component,
> +		bool enable)
> +{
> +	if (enable) {
> +		snd_soc_component_update_bits(component, RT5682S_SAR_IL_CMD_13,
> +			RT5682S_SAR_SOUR_MASK, RT5682S_SAR_SOUR_BTN);
> +		snd_soc_component_write(component, RT5682S_IL_CMD_1, 0x0040);
> +		snd_soc_component_update_bits(component, RT5682S_4BTN_IL_CMD_2,
> +			RT5682S_4BTN_IL_MASK | RT5682S_4BTN_IL_RST_MASK,
> +			RT5682S_4BTN_IL_EN | RT5682S_4BTN_IL_NOR);
> +		snd_soc_component_update_bits(component, RT5682S_IRQ_CTRL_3,
> +			RT5682S_IL_IRQ_MASK, RT5682S_IL_IRQ_EN);
> +	} else {

Why not just have separate enable and disable functions, there's no
shared code here and it avoids the boolean argument which tends to be
unclear?

> +static const char * const rt5682s_sar_mode[] = {
> +	"Normal", "Saving"
> +};
> +
> +static SOC_ENUM_SINGLE_DECL(rt5682s_sar_mode_enum, 0, 0,
> +	rt5682s_sar_mode);

Might be easier to make this a "SAR Power Saving Switch"?  Doesn't
really matter.

> +static int rt5682s_probe(struct snd_soc_component *component)
> +{
> +	struct rt5682s_priv *rt5682s = snd_soc_component_get_drvdata(component);
> +	struct snd_soc_dapm_context *dapm = &component->dapm;
> +
> +#ifdef CONFIG_COMMON_CLK
> +	int ret;
> +#endif
> +	rt5682s->component = component;
> +
> +#ifdef CONFIG_COMMON_CLK
> +	/* Check if MCLK provided */
> +	rt5682s->mclk = devm_clk_get(component->dev, "mclk");

Perhaps factor the clock init out into a _probe_clks() function and then
have a stub function rather than the two ifdefs?

Attachment: signature.asc
Description: PGP signature


[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