cs_dsp_wseq_write(9)
π cs_dsp_wseq_write(9) β like, the one page you need from the Kernel API Manual, bestie
okay so. bestie. sit down. we're talking about cs_dsp_wseq_write, and honestly? it's giving "small function, big responsibilities." it adds or updates an entry in a write sequence. that's the whole vibe. let's get into it π
β¨ NAME β¨
cs_dsp_wseq_write β add or update an entry in a write sequence. periodt.
π SYNOPSIS π
int cs_dsp_wseq_write (struct cs_dsp *dsp , struct cs_dsp_wseq *wseq ,
u32 addr , u32 data , u8 op_code , bool update );
like yes, that's the whole signature, no cap, copy it exactly bestie π«Ά
πΈ ARGUMENTS πΈ
okay so here's the cast of characters, and every single one of them matters:
dspβ pointer to a DSP structure. your main character, essentially πwseqβ the write sequence to write to. this is where the magic goes.addrβ address of the register to be written to. literally the destination, iykyk.dataβ the data to be written. the actual payload, the moment, the ~content~.op_codeβ the type of operation of the new entry. gotta know what kind of move we're making here.updateβ bestie listen closely, this one's a whole personality trait:- if true, it searches for the first entry in the write sequence with the same
addrandop_code, and replaces it π― - if false, it creates a brand new entry at the tail π¦
- if true, it searches for the first entry in the write sequence with the same
π¦ DESCRIPTION π¦
so what does this thing actually do? it formats register address and value pairs into the format required for write sequence entries, and then either updates or adds the new entry into the write sequence. iconic behavior honestly β¨
and here's the little plot twist you need to know: if update is set to true and no matching entry is found, it will add a new entry. so it's not gonna just silently do nothing and leave you hanging β it's gonna make room for you π
π₯ RETURN π₯
- Zero for success π
- a negative number on error π
that's it. that's the whole return situation.
β SEE ALSO β
the whole friend group, no one left out:
- Kernel file
./drivers/firmware/cirrus/cs_dsp.c cs_dsp_mem_region_name(9),cs_dsp_init_debugfs(9),cs_dsp_cleanup_debugfs(9),cs_dsp_coeff_write_acked_control(9),cs_dsp_coeff_write_ctrl(9),cs_dsp_coeff_lock_and_write_ctrl(9),cs_dsp_coeff_read_ctrl(9),cs_dsp_coeff_lock_and_read_ctrl(9),cs_dsp_hibernate(9),cs_dsp_get_ctl(9),cs_dsp_find_alg_region(9),cs_dsp_adsp1_init(9),cs_dsp_adsp1_power_up(9),cs_dsp_adsp1_power_down(9),cs_dsp_set_dspclk(9),cs_dsp_power_up(9),cs_dsp_power_down(9),cs_dsp_run(9),cs_dsp_stop(9),cs_dsp_adsp2_init(9),cs_dsp_halo_init(9),cs_dsp_remove(9),cs_dsp_read_raw_data_block(9),cs_dsp_read_data_word(9),cs_dsp_write_data_word(9),cs_dsp_remove_padding(9),cs_dsp_adsp2_bus_error(9),cs_dsp_halo_bus_error(9),cs_dsp_halo_wdt_expire(9),cs_dsp_chunk_write(9),cs_dsp_chunk_flush(9),cs_dsp_chunk_read(9),cs_dsp_wseq_init(9),cs_dsp_wseq_multi_write(9)
and that's the whole page, bestie π β¨
this lil gem lives over in ./drivers/firmware/cirrus, it's dated October 2026, and it goes by cs_dsp_wseq_write(9) β mwah, go slay your write sequences ππ
π¦ 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