[alsa-devel] Question about soc_bind_aux_dev()

Takashi Iwai tiwai at suse.de
Wed May 22 12:54:01 CEST 2019


On Wed, 22 May 2019 10:30:51 +0200,
Kuninori Morimoto wrote:
> 
> 
> Hi ALSA ML
> 
> Do you know why snd_soc_aux_dev has both name and codec_name ??
> 
> 	struct snd_soc_aux_dev {
> =>		const char *name;		/* Codec name */
> 		...
> =>		const char *codec_name;
> 		...
> 	};
> 
> For example, samsung's speyside.c has both name and codec_name
> 
> 	static struct snd_soc_aux_dev speyside_aux_dev[] = {
> 		{
> =>			.name = "wm9081",
> =>			.codec_name = "wm9081.1-006c",
> 			...
> 		},
> 	};
> 
> In my research, there is no driver which is using .name only.
> All drivers are having codec_of_node, or .codec_name
> 
> Now, in the soc_bind_aux_dev(), it checks .codec_name or codec_of_node first.
> This means, there is zero chance to use .name ?
> 
> 	static int soc_bind_aux_dev(struct snd_soc_card *card, int num)
> 	{
> 		...
> =>		if (aux_dev->codec_of_node || aux_dev->codec_name) {
> 			...
> 			component = soc_find_component(...);
> 			...
> =>		} else if (aux_dev->name) {
> 			...
> 			component = soc_find_component(...);
> 			...
> 		}
> 		...
> 	}
> 
> Why .name is needed ??

AFAIK, the binding with aux_dev->name was introduced later as a
fallback in case of no codec.  Through a quick glance at git log, the
commit f2ed6b07645e brought the behavior.  Other than that, the field
was used merely for some label, e.g. passed to
snd_soc_post_component_init().


Takashi


More information about the Alsa-devel mailing list