snd_hda_mixer_amp_tlv(9)
π snd_hda_mixer_amp_tlv β the Kernel API Manual page, bestie edition π
okay so real talk, this is snd_hda_mixer_amp_tlv(9) from the Kernel API Manual, and it's literally a TLV callback for a standard AMP mixer volume β¨ like that's the whole vibe. tiny page, iconic energy, let's get into it π¦
β¨ NAME β¨
snd_hda_mixer_amp_tlv β the TLV callback for a standard AMP mixer volume. that's it, that's the function, she's a callback and she serves π
πΈ SYNOPSIS πΈ
int snd_hda_mixer_amp_tlv (struct snd_kcontrol *kcontrol , int op_flag ,
unsigned int size , unsigned int __user *_tlv );
not me copying the signature exactly so you don't have to squint at it π take it, it's yours π«Ά
π¦ ARGUMENTS π¦
kcontrolβ ctl element. this is the control element you're working with, she's the main character obvi πop_flagβ operation flag. the flag telling you what operation is going down.sizeβ byte size of input TLV. yes babe, in bytes π₯_tlvβ TLV data. the actual TLV payload, right there,__userand everything π
π DESCRIPTION π
okay so here's the tea: the control element is supposed to have its private_value field set up via HDA_COMPOSE_AMP_VAL*() or related macros. like that's the whole precondition, no cap. if you skipped that step that's on you bestie π
fr fr, the description is short and she means it βprivate_valuecomes fromHDA_COMPOSE_AMP_VAL*()or the related macros, periodt β¨
β SEE ALSO β
the kernel file is ./sound/hda/common/codec.c and here's the whole friend group, iykyk π
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_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)
and that's the page!! every single one of those references is here because i would never do you dirty like that π
okay so this little cutie lives under ./sound/hda/common and the date on her birth certificate says October 2026 πΈ so yeah, that's the source path and the date, consider it signed, sealed, and slayed π
β¨ mwah π«Ά
π¦ 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