Hi Carl >> (X) int asoc_simple_init_jack(...) >> { >> ... >> if (gpio_is_valid(det)) { >> ... >> >> snd_soc_card_jack_new(...); >> snd_soc_jack_add_gpios(...); >> for_each_card_components(card, component) >> (Y) snd_soc_component_set_jack(component, ...); >> } >> ... >> } > > So for the case of cpcap codec on motorola mapphones this dosent help, > because we dont have a gpio to sense plug state, thus no gpio in dts > and thus gpio_is_valid will return false, therefore, no jack. > > Moving > > sjack->pin.pin = pin_name; > sjack->pin.mask = mask; > > snd_soc_card_jack_new(card, pin_name, mask, > &sjack->jack, > &sjack->pin, 1); > > and > > for_each_card_components(card, component) > snd_soc_component_set_jack(component, &sjack->jack, NULL); > > outside of the if block should make this work, at least cpcap gets the jack then. I see. simple-card is checking hp-det-gpio on DT now. I guess it can help you if simple-card also check "hp-det" (no gpio) (and customize previous patch) ? Is "enable-hp" better naming... ? Best regards --- Kuninori Morimoto