cs_dsp_run(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– cs_dsp_run(9) β€” the Kernel API Manual glow-up πŸ’–

okay bestie, welcome to the Kernel API Manual entry for cs_dsp_run(9) β€” yes that (9) means it's a kernel-internals girlie, we're in the firmware section now, and honestly? it's giving backend magic and i'm obsessed ✨


✨ NAME ✨

cs_dsp_run β€” starts the firmware running πŸƒβ€β™€οΈπŸ’¨

like literally, this is the "press play" of the DSP world and no cap it's kind of a big deal πŸ”₯


🌸 SYNOPSIS 🌸

int cs_dsp_run (struct cs_dsp *dsp );

one function, one pointer, zero drama πŸŽ€


πŸ¦‹ ARGUMENTS πŸ¦‹

  • dsp β€” pointer to the DSP structure πŸ’… that's your DSP handler bestie, the whole lil struct you're about to send off into the world

πŸŽ€ DESCRIPTION πŸŽ€

so here's the tea: cs_dsp_power_up must have previously been called successfully. like, that's not a suggestion, that's a prerequisite. power it up first, then come run the firmware. the way that ordering matters… iykyk 🫢

bestie do NOT skip the power-up step, ok? this one does not do it for you πŸ’€

⭐ RETURN ⭐

  • 0 β€” zero for success πŸŽ‰ slay, it worked
  • a negative number β€” on error 😭 something went wrong and the kernel is telling you with a sad little negative value

πŸ’œ SEE ALSO πŸ’œ

the whole friend group, fr fr β€” these are all the (9) besties you should go meet:

  • cs_dsp_mem_region_name, cs_dsp_init_debugfs, cs_dsp_cleanup_debugfs, cs_dsp_coeff_write_acked_control, cs_dsp_coeff_write_ctrl, cs_dsp_coeff_lock_and_write_ctrl, cs_dsp_coeff_read_ctrl, cs_dsp_coeff_lock_and_read_ctrl β€” the coefficient girlies, write and read and lock every which way πŸ‘‘
  • cs_dsp_hibernate, cs_dsp_get_ctl, cs_dsp_find_alg_region β€” napping, getting, and finding things πŸ¦‹
  • cs_dsp_adsp1_init, cs_dsp_adsp1_power_up, cs_dsp_adsp1_power_down, cs_dsp_set_dspclk, cs_dsp_power_up, cs_dsp_power_down, cs_dsp_stop β€” the ADSP1 crew plus your power and clock and stop essentials, highkey the core squad πŸ’–
  • cs_dsp_adsp2_init, cs_dsp_halo_init, cs_dsp_remove, cs_dsp_read_raw_data_block, cs_dsp_read_data_word, cs_dsp_write_data_word, cs_dsp_remove_padding β€” ADSP2 and Halo init, removal, and all the raw data reading/writing/padding-removing realness 🌈
  • cs_dsp_adsp2_bus_error, cs_dsp_halo_bus_error, cs_dsp_halo_wdt_expire β€” the oops-handlers, bus errors and the watchdog expiring, we don't gatekeep the sad paths πŸ’€
  • cs_dsp_chunk_write, cs_dsp_chunk_flush, cs_dsp_chunk_read, cs_dsp_wseq_init, cs_dsp_wseq_write, cs_dsp_wseq_multi_write β€” chunk stuff and wseq stuff, write/flush/read and init/write/multi-write, all here, all accounted for ✨

oh and also β€” the kernel file itself lives at ./drivers/firmware/cirrus/cs_dsp.c, so go peek if you're nosy (respectfully) πŸ™ˆ


🧚 sign-off 🧚

this page came to you straight out of ./drivers/firmware/cirrus, dated October 2026, and it's filed under cs_dsp_run(9) β€” that's the whole footer, bestie, no crumbs left behind πŸ“

now go call cs_dsp_power_up first and then run that firmware, periodt πŸ’…βœ¨

πŸ“¦ where this page comes from