snd_hda_get_conn_list(9)
π
snd_hda_get_conn_list β get connection list
okay bestie so this is a page straight out of the Kernel API Manual, and it's about one little function that fishes the connection list out of an HDA widget. it's giving "small function, big friend group" energy, and honestly? iconic. let's get into it π
β¨ SYNOPSIS β¨
int snd_hda_get_conn_list (struct hda_codec *codec , hda_nid_t nid ,
const hda_nid_t **listp );
like, three args, one int back, no drama. π«Ά
πΈ ARGUMENTS πΈ
codecβ the HDA codec. yes, the codec. your main character. the whole reason we're here πnidβ the NID to parse. this is the widget you're snooping on, respectfully πlistpβ the pointer to store the NID list in. you hand it a spot, it drops the list there. it's giving "here, hold my keys" π
π¦ DESCRIPTION π¦
so what does it actually do? it parses the connection list of the given widget and stores the pointer to the list of NIDs. that's it, that's the vibe. the widget's connections get read, and the pointer to the list lands wherever listp points. slay. β¨
it returns the number of connections, or a negative error code if things go sideways. so like, the return value is literally "how many friends does this widget have" and the error case is the "nvm, something broke" moment π
β οΈ okay this part is important, no cap: the returned pointer isn't protected against the list modification. if snd_hda_override_conn_list might be called concurrently, protect with a mutex appropriately. that's a real one β do not skip the mutex, bestie, fr fr π
π₯ SEE ALSO π₯
it's a whole friend group, buckle up. also peep the kernel file: ./sound/hda/common/codec.c π§
snd_hda_sequence_write(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_correct_pin_ctl(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)
like I said. a whole friend group. periodt π
and that's the page!! π this one lives over in ./sound/hda/common and the version stamp on it says October 2026 β so yeah, future-coded king behavior π go read your kernel source bestie, ily, bye π«Άπ
π¦ 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