snd_hda_get_num_devices(9)
β¨ snd_hda_get_num_devices(9) β¨
okay so this is a page straight out of the Kernel API Manual, and bestie it is so niche and so useful β we're talking about getting the DEVLIST_LEN parameter of a given widget π
π NAME π
snd_hda_get_num_devices β get DEVLIST_LEN parameter of the given widget
πΈ SYNOPSIS πΈ
unsigned int snd_hda_get_num_devices (struct hda_codec *codec ,
hda_nid_t nid );
π ARGUMENTS π
codecβ the HDA codec π§ like, the whole codec object, yeahnidβ NID of the pin to parse π the pin we're digging into, fr fr
π¦ DESCRIPTION π¦
So what does it actually do? It gets the device entry number on the given widget β¨ That's the whole vibe.
This is a feature of DP MST audio β yes, DisplayPort Multi-Stream Transport, the icon it is π
Each pin can have several device entries in it, which is honestly kind of a lot for one little pin, but slay, we support it π
π SEE ALSO π
Also check out the Kernel file ./sound/hda/common/codec.c β that's where the lore lives π§ And then the entire extended family, roll call time π:
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_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, that's the whole friend group π«Ά go say hi to all of them ok?
π friendly reminder: every one of those is(9)β the kernel API section, not section 1, not section 3. don't be out here typoingman 1and getting confused, i'm begging π
okay that's the whole page bestie, no cap, you now understand snd_hda_get_num_devices(9) better than like 99% of people π this gem lives over in ./sound/hda/common, and the doc itself is dated October 2026 β so yeah, it's from the future, main character energy only β periodt π
π¦ 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