snd_soc_dap...e_enable_pin(9)
π snd_soc_dapm_force_enable_pin β force a pin to be enabled π
okay so bestie, we're in the Kernel API Manual today, and this little function is genuinely one of the most "just do it" energy things in the whole DAPM saga π
β¨ SYNOPSIS β¨
int snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm,
const char *pin);
π ARGUMENTS π
dapmβ the DAPM context. like, the whole vibe-scape of widgets and routes we're operating inside π¦pinβ the pin name. just the name, as a string, bestie π
πΈ DESCRIPTION πΈ
This bad boy enables an input/output pin regardless of any other state. no cap. it does not care what the rest of the graph thinks, it does not check with its friends, it just says "this pin? enabled. periodt." π₯
It's intended for use with microphone bias supplies used in microphone jack detection β so like, when you need the mic bias to be up no matter what else is going on so the jack detection can actually do its thing π
π NOTE π
ngl this is the important part: snd_soc_dapm_sync needs to be called after this for DAPM to do any widget power switching. so like, the force-enable is the intent, and the sync is the main character energy that actually makes the power move happen. don't skip it fr fr π
π«Ά SEE ALSO π«Ά
The kernel file lives at ./sound/soc/soc-dapm.c β and here's the whole friend group, all iconic, all in (9):
snd_soc_dapm_kcontrol_to_widget(9)snd_soc_dapm_kcontrol_to_dapm(9)snd_soc_dapm_kcontrol_to_component(9)snd_soc_dapm_force_bias_level(9)snd_soc_dapm_init_bias_level(9)snd_soc_dapm_set_bias_level(9)snd_soc_dapm_get_bias_level(9)snd_soc_dapm_dai_get_connected_widgets(9)snd_soc_dapm_free_widget(9)snd_soc_dapm_sync_unlocked(9)snd_soc_dapm_sync(9)snd_soc_dapm_add_routes(9)snd_soc_dapm_del_routes(9)snd_soc_dapm_new_widgets(9)snd_soc_dapm_get_volsw(9)snd_soc_dapm_put_volsw(9)snd_soc_dapm_get_enum_double(9)snd_soc_dapm_put_enum_double(9)snd_soc_dapm_info_pin_switch(9)snd_soc_dapm_get_pin_switch(9)snd_soc_dapm_get_component_pin_switch(9)snd_soc_dapm_put_pin_switch(9)snd_soc_dapm_put_component_pin_switch(9)snd_soc_dapm_new_control(9)snd_soc_dapm_new_controls(9)snd_soc_dapm_new_dai_widgets(9)snd_soc_dapm_stream_event(9)snd_soc_dapm_enable_pin_unlocked(9)snd_soc_dapm_enable_pin(9)snd_soc_dapm_force_enable_pin_unlocked(9)snd_soc_dapm_disable_pin_unlocked(9)snd_soc_dapm_disable_pin(9)snd_soc_dapm_get_pin_status(9)snd_soc_dapm_ignore_suspend(9)snd_soc_dapm_pin_has_prefix(9)snd_soc_dapm_free(9)
and that's the whole page, bestie β sourced from ./sound/soc, dated October 2026, in the Kernel API Manual. go force-enable something and remember to sync after πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms