[PATCH 6/6] ASoC: ak4613: add TDM256 support

Geert Uytterhoeven geert at linux-m68k.org
Tue Jun 7 22:27:12 CEST 2022


 	Hi Morimoto-san,

On Tue, 5 Apr 2022, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> AK4613 has STEREO/TDM512/TDM256/TDM128 mode.
> Renesas is the only user of ak4613 on upstream for now,
> and is using it as STEREO mode, because of board connection.
> Thus, current driver is supporting STEREO mode only, and other
> modes are not supported.
>
> But I noticed that I can try first 2ch out of TDM256 mode 8ch
> Playback even in such a situation.
>
> But because of board connection, I can't test full TDM256 mode,
> and/or other TDM mode. Thus I don't want to add new DT propaty for now.
> This patch enables TDM256 mode test by "ifdef style",
> but it has no effect to current supported STEREO mode.
> You can define AK4613_ENABLE_TDM_TEST to try TDM256 mode.
>
> Please don't hesitate to break current code if you can add full TDM256
> and/or other TDM mode. You don't need to care compatibility with Renesas.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>

Thanks for your patch, which is now commit f28dbaa958fbd8fb ("ASoC:
ak4613: add TDM256 support") in v5.19-rc1.

> --- a/sound/soc/codecs/ak4613.c
> +++ b/sound/soc/codecs/ak4613.c
> @@ -645,6 +851,29 @@ static void ak4613_parse_of(struct ak4613_priv *priv,
> 		if (!of_get_property(np, prop, NULL))
> 			priv->oc |= 1 << i;
> 	}
> +
> +	/*
> +	 * enable TDM256 test
> +	 *
> +	 * !!! FIXME !!!
> +	 *
> +	 * It should be configured by DT or other way
> +	 * if it was full supported.
> +	 * But it is using ifdef style for now for test
> +	 * purpose.
> +	 */
> +#if defined(AK4613_ENABLE_TDM_TEST)
> +	AK4613_CONFIG_SET(priv, MODE_TDM256);
> +#endif
> +
> +	/*
> +	 * connected STDI
> +	 */
> +	sdti_num = of_graph_get_endpoint_count(np);
> +	if (WARN_ON((sdti_num > 3) || (sdti_num < 1)))

This WARN_ON() is triggered on Ebisu-4D, as sdti_num = 0.
It can be reproduced by booting renesas-devel-2022-06-07-v5.19-rc1
using renesas_defconfig.

Sorry for not noticing before.

> +		return;
> +
> +	AK4613_CONFIG_SDTI_set(priv, sdti_num);
> }
>
> static int ak4613_i2c_probe(struct i2c_client *i2c,

Gr{oetje,eeting}s,

 						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
 							    -- Linus Torvalds


More information about the Alsa-devel mailing list