snd_hda_correct_pin_ctl(9)
π
snd_hda_correct_pin_ctl β the (9) kernel API one, bestie
okay so listen. this is a page from the Kernel API Manual, and the whole main character of it is a function called snd_hda_correct_pin_ctl β¨. it's short, it's sweet, it does exactly one thing, and honestly? we stan a focused queen π.
πΈ NAME πΈ
snd_hda_correct_pin_ctl β correct the pin ctl value so it matches up with the pin cap π
like, your pin ctl value is out here lying about itself and this function is the friend who's like "girl, no" and fixes it so it agrees with the pin cap. no cap π―.
β¨ SYNOPSIS β¨
unsigned int snd_hda_correct_pin_ctl (struct hda_codec *codec ,
hda_nid_t pin , unsigned int val );
it hands you back an unsigned int, btw. don't sleep on the return type π«Ά.
π¦ ARGUMENTS π¦
codecβ the HDA codec. yes, the whole codec. yes, she's the HDA one. that's the vibe check she passes πpinβ the referred pin NID. it's the pin we're talking about, the one getting its whole situation audited πvalβ the pin ctl value to audit. this is the value that gets checked and corrected so it plays nice with the pin cap β
π SEE ALSO π
okay so this is the part where the page just. goes. off. like genuinely iconic, it links basically the entire ./sound/hda/common/codec.c file β in ./sound/hda/common β because apparently everybody in this kernel directory knows each other π. all (9) sections, fr fr:
snd_hda_sequence_write(9),snd_hda_get_conn_list(9),snd_hda_get_connections(9),snd_hda_override_conn_list(9),snd_hda_get_conn_index(9)snd_hda_get_num_devices(9),snd_hda_get_devices(9),snd_hda_get_dev_select(9),snd_hda_set_dev_select(9)snd_hda_codec_set_pincfg(9),snd_hda_codec_get_pincfg(9),snd_hda_codec_set_pin_target(9),snd_hda_codec_get_pin_target(9),snd_hda_shutup_pins(9)snd_hda_codec_cleanup_for_unbind(9),snd_hda_codec_register(9),snd_hda_codec_unregister(9),snd_hda_codec_device_init(9),snd_hda_codec_new(9),snd_hda_codec_update_widgets(9)snd_hda_codec_setup_stream(9),__snd_hda_codec_cleanup_stream(9)query_amp_caps(9),snd_hda_check_amp_caps(9),snd_hda_override_amp_caps(9)snd_hda_codec_amp_update(9),snd_hda_codec_amp_stereo(9),snd_hda_codec_amp_init(9),snd_hda_codec_amp_init_stereo(9)snd_hda_mixer_amp_volume_info(9),snd_hda_mixer_amp_volume_get(9),snd_hda_mixer_amp_volume_put(9),snd_hda_mixer_amp_tlv(9),snd_hda_set_vmaster_tlv(9)snd_hda_find_mixer_ctl(9),snd_hda_ctl_add(9),snd_hda_ctls_clear(9)snd_hda_lock_devices(9),snd_hda_unlock_devices(9),snd_hda_codec_reset(9)__snd_hda_add_vmaster(9),snd_hda_add_vmaster_hook(9),snd_hda_sync_vmaster_hook(9)snd_hda_mixer_amp_switch_info(9),snd_hda_mixer_amp_switch_get(9),snd_hda_mixer_amp_switch_put(9)snd_hda_create_dig_out_ctls(9),snd_hda_spdif_out_of_nid(9),snd_hda_spdif_ctls_unassign(9),snd_hda_spdif_ctls_assign(9),snd_hda_create_spdif_share_sw(9),snd_hda_create_spdif_in_ctls(9)snd_hda_codec_set_power_to_all(9),snd_hda_codec_eapd_power_filter(9),snd_hda_codec_prepare(9),snd_hda_codec_cleanup(9),snd_hda_add_new_ctls(9)snd_hda_codec_set_power_save(9),snd_hda_set_power_save(9),snd_hda_check_amp_list_power(9)snd_hda_input_mux_info(9),snd_hda_input_mux_put(9),snd_hda_enum_helper_info(9)snd_hda_multi_out_dig_open(9),snd_hda_multi_out_dig_prepare(9),snd_hda_multi_out_dig_cleanup(9),snd_hda_multi_out_dig_close(9)snd_hda_multi_out_analog_open(9),snd_hda_multi_out_analog_prepare(9),snd_hda_multi_out_analog_cleanup(9)snd_hda_get_default_vref(9),_snd_hda_set_pin_ctl(9),snd_hda_add_imux_item(9)snd_hda_bus_reset_codecs(9),snd_hda_codec_set_gpio(9),snd_print_pcm_bits(9)
and yeah β the kernel file they all live in is ./sound/hda/common/codec.c, which is in ./sound/hda/common π. the whole friend group, all tagged (9), all slaying in their own little way π.
π§ sign-off π§
that's the whole page bestie, it's a short one β a true palate cleanser π. credit where it's due: this gem comes from the Kernel API Manual, dated October 2026, filed under ./sound/hda/common. go correct some pin ctl values, you've got this π
πβ¨
π¦ 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