cs_dsp_set_dspclk(9)
π
cs_dsp_set_dspclk (9) β a kernel API manual, but make it make sense
okay bestie, welcome to the kernel API manual, section 9, and today's main character is cs_dsp_set_dspclk π no cap, this one's a tiny little function but she does exactly one job and she does it slayfully.
β¨ NAME β¨
cs_dsp_set_dspclk β applies the given frequency to the given cs_dsp
like... that's it. that's the whole vibe. you hand her a frequency, she hands it to the cs_dsp. iconic behavior honestly π¦
πΈ SYNOPSIS πΈ
int cs_dsp_set_dspclk (struct cs_dsp *dsp , unsigned int freq );
look at her. one return type, two arguments, zero drama (on ADSP2 cores at least, more on that in a sec π).
π ARGUMENTS π
dspβ pointer to the DSP structure π«Ά so like, the actual cs_dsp we're messing with. she's the target of the whole operation, the main character if you will.freqβ the clock rate to set β literally the frequency. the number. the whole point. that's what's getting applied.
π₯ DESCRIPTION π₯
so here's the tea: this is only for use on ADSP2 cores π periodt. not ADSP1, not Halo, not whatever else β ADSP2 only. if you're out here calling this on a non-ADSP2 core, that's not her job, bestie, read the room π
ngl the description is short because the function is short. lowkey refreshing honestly.
π RETURN π
Zerofor success β slay β¨ we love a clean exit- a negative number on error β π not the negative return, but at least it's honest
so like, check your return value. 0 = we ate. negative = we did not.
π¦ SEE ALSO π¦
and now, the girlies. the whole friend group. the extended cirrus cs_dsp cinematic universe π
also worth peeking at the 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_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_write(9)cs_dsp_wseq_multi_write(9)
like, go read them. iykyk π§
π friendly reminder before you go: ADSP2 cores only. don't come for me if you ignore that, i literally told you.
and that's the page, bestie π this lil manual lives under ./drivers/firmware/cirrus, dated October 2026, and yes she's still rocking her original title cs_dsp_set_dspclk(9) like the queen she is. 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