[PATCH v3 06/13] ASoC: simple-card-utils: Expose new members for asoc_simple_priv

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Fri Oct 2 03:45:48 CEST 2020


Hi Sameer

Thank you for the patch

> Add new members in struct 'asoc_simple_priv'. Idea is to leverage
> simple or graph card driver as much as possible and vendor can
> maintain a thin driver to control the behavior by populating these
> newly exposed members.

re-use simple/audio-graph driver is nice idea.
My planning next new audio-graph2 can renuse it.

> diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
> index 86a1e95..9825308 100644
> --- a/include/sound/simple_card_utils.h
> +++ b/include/sound/simple_card_utils.h
> @@ -56,6 +56,10 @@ struct asoc_simple_priv {
>  	struct asoc_simple_dai *dais;
>  	struct snd_soc_codec_conf *codec_conf;
>  	struct gpio_desc *pa_gpio;
> +	const struct snd_soc_ops *ops;
> +	unsigned int force_dpcm:1;
> +	uintptr_t dpcm_selectable;
> +	void *data;
>  };

I have opinions about these.

About dpcm_selectable, indeed current audio-graph is using it as "uintptr_t",
but as you know, it checks whether it was non-NULL or not only.
This means we can use it as bit-field.

BTW, do we need to have dpcm_selectable at priv ?

One note is that, -scu- user is only me (locally),
and it will be removed when audio-graph2 was created.
(My plan is keep code for you, but remove compatible)

About *data, I think we can avoid *data
if driver side priv includes asoc_simple_priv ?

	struct my_priv {
		struct asoc_simple_priv *simple;
		...
	};

	#define simple_to_priv(_simple) container_of((_simple), struct my_priv, simple)


Thank you for your help !!

Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list