sst_send_gain_cmd(9)
π sst_send_gain_cmd β the kernel API manual, but make it make sense
okay so bestie, welcome to the glow-up of sst_send_gain_cmd(9) from the Kernel API Manual β¨ this is the little function that literally sends the gain algorithm IPC over to the FW π scroll responsibly, she's a kernel function.
πΈ NAME πΈ
sst_send_gain_cmd β sends the gain algorithm IPC to the FW. yes that's the whole job. no cap, she does one thing and she eats π
β¨ SYNOPSIS β¨
int sst_send_gain_cmd (struct sst_data *drv , struct sst_gain_value *gv
, u16 task_id , u16 loc_id , u16 module_id , int mute );
like, look at her signature. iconic. parameter spacing is exactly as the original, don't come for me π«Ά
π ARGUMENTS π
drvβ thesst_data. that's it. that's the description. short king energy ngl πgvβ the stored value of gain (and she also containsrampduration, so like, bonus data). the main character of the value struct πtask_idβ task index π’loc_idβ location/position index πmodule_idβ module index π§©muteβ a flag that tells you whether this was called from thedigital_mutecallback or directly. here's the tea though: if it was called from thedigital_mutecallback, the module will be muted/unmuted based on this flag. and if it was called directly? the flag is always0. periodt π
π¦ DESCRIPTION π¦
like, first things first: this gets called with sst_data.lock held π don't forget, that's important, iykyk.
now the actual vibe of what she does:
the user-set gain value is sent only if the user-controllable 'mute' control is OFF β and that OFF-ness is indicated by gv->mute. so like, gv->mute is your vibe check for whether the gain gets through π
otherwise (mute control is not OFF, bestie), the mute value is what gets sent β and that mute value is the MIN value β¬οΈ so no sneaky gain slips through while muted, fr fr.
lowkey the whole logic is: gain goes out when mute is off, MIN value goes out when it isn't. two paths, zero drama π
π₯ SEE ALSO π₯
- the kernel file
./sound/soc/intel/atom/sst-atom-controls.cπ sst_fill_and_send_cmd(9)sst_slot_get(9)sst_slot_put(9)sst_find_and_send_pipe_algo(9)fill_swm_input(9)sst_send_pipe_gains(9)sst_fill_module_list(9)sst_fill_widget_module_info(9)sst_fill_linked_widgets(9)sst_map_modules_to_pipe(9)
like, go read the whole friend group, they all hang out together π«Άβ¨
and that's the page!! sourced straight from ./sound/soc/intel/atom, dated October 2026, living in the Kernel API Manual π ty for coming to my ted talk, 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