snd_hda_code...power_to_all(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ snd_hda_codec_set_power_to_all(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸŽ€ β€” this is the page for snd_hda_codec_set_power_to_all, and honestly? it's giving "small function, big responsibilities." sit down, grab a strawberry πŸ“, let's get into it.


🌸 NAME 🌸

snd_hda_codec_set_power_to_all β€” literally just sets the power state to all widgets πŸ”₯


πŸ’… SYNOPSIS πŸ’…

void snd_hda_codec_set_power_to_all (struct hda_codec *codec , hda_nid_t
fg , unsigned int power_state );

that's it. that's the whole signature. no cap. ✨


πŸ¦‹ ARGUMENTS πŸ¦‹

  • codec β€” the HDA codec πŸ’– this is the main character of the whole operation
  • fg β€” function group (not used now πŸ™ˆ so like… it's there, but it's not doing anything rn)
  • power_state β€” the power state to set, specified as AC_PWRST_* values ⚑

πŸ‘‘ DESCRIPTION πŸ‘‘

so here's the vibe: this function takes the power state you hand it and sets it to all widgets that have the power control. every single one. periodt. πŸ’…

and here's the lil plot twist β€” if the codec has power_filter set, the function evaluates the power state and filters it out if it's unchanged as D3. like, if it's already vibing at D3, no need to bother it again, yk? 🫢


🌈 SEE ALSO 🌈

the kernel file lives at ./sound/hda/common/codec.c β€” and honestly the friend group here is huge, so let's list every single one bc we don't skip anyone in this house πŸ’œ

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_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. huge friend group. iykyk πŸ’€


ngl bestie, fg is giving "invited to the party but just standing in the corner" β€” it's not used now, so don't stress about it πŸ™ˆ

and that's the whole page!! this came to you from ./sound/hda/common in October 2026 ⭐ β€” go forth, set those power states, and slay πŸ’–πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from