[RFC PATCH 1/3] ASoC: simple-card-utils: add support for componants provideing jack events via set_jack

kuninori.morimoto.gx at gmail.com kuninori.morimoto.gx at gmail.com
Wed Jan 5 06:36:33 CET 2022


Hi Carl

Thank you for your patch.

> This allows componants that want a jack to report state on to do so by calling
> set_jack on components implementing this function.
>
> Im not entirely sure this is the right way to do this so RFC
(snip)
> +	for_each_rtd_components(rtd, i, component) {
> +		if (component->driver->set_jack) {
> +			if (!priv->hp_jack) {
> +				priv->hp_jack = devm_kzalloc(priv->snd_card.dev,
> +					sizeof(*priv->hp_jack), GFP_KERNEL);
> +				snd_soc_card_jack_new(&priv->snd_card,
> +					"Headphones",
> +					SND_JACK_HEADPHONE,
> +					&priv->hp_jack->jack,
> +					NULL, 0);
> +			}
> +			snd_soc_component_set_jack(component, &priv->hp_jack->jack, NULL);
> +		}
> +	}

I'm sorry but I don't understand what you want to do by this patch.
Is main code of this patch asoc_simple_dai_init() update
(= call set_jack() for all component) ?

>  int asoc_simple_init_jack(struct snd_soc_card *card,
> -			       struct asoc_simple_jack *sjack,
> +			       struct asoc_simple_jack **sjack,
>  			       int is_hp, char *prefix, char *pin);

${LINUX}/sound/soc/fsl/fsl-asoc-card.c is using this function, too.
We will have compile error without update it.

>  int asoc_simple_init_jack(struct snd_soc_card *card,
> -			  struct asoc_simple_jack *sjack,
> +			  struct asoc_simple_jack **sjack,
>  			  int is_hp, char *prefix,
>  			  char *pin)
(snip)
>  	if (gpio_is_valid(det)) {
> -		sjack->pin.pin		= pin_name;
> -		sjack->pin.mask		= mask;
> +		struct asoc_simple_jack *sjack_d;
> +
> +		sjack = devm_kzalloc(dev, sizeof(*(*sjack)), GFP_KERNEL);
> +		sjack_d = *sjack;

Am I misunderstanding ?
I think you need to do here is this ?

	-	sjack = devm_kzalloc(dev, sizeof(*(*sjack)), GFP_KERNEL);	
	+	*sjack = devm_kzalloc(dev, sizeof(*(*sjack)), GFP_KERNEL);

Thank you for your help !!

Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list