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