cik_mc_init(9)
π cik_mc_init(9) β from the Kernel API Manual, bestie π
okay so picture this: it's a Linux kernel API man page, section 9, and the star of the show is cik_mc_init. this is literally the page where the kernel docs hand you the keys to the memory controller and say "go, girl." the manual name is Kernel API Manual btw, in case you were wondering where all this lore comes from π
β¨ NAME β¨
cik_mc_init β initialize the memory controller driver params
like, that's the whole job description and honestly it ate π
β¨ SYNOPSIS β¨
int cik_mc_init (struct radeon_device *rdev );
yup, that's it, that's the whole signature. one function, one pointer, zero drama (okay maybe a little drama, it's graphics drivers) π¦
β¨ ARGUMENTS β¨
rdevβ aradeon_devicepointer. that's it. that's the argument. it's giving "one job and I'm gonna do it iconically" π
β¨ DESCRIPTION β¨
okay so here's the tea, bestie π β cik_mc_init goes and looks up how much vram you have, and looks up the vram width, and then it decides how to place vram and gart within the GPU's physical address space (CIK). very main character of it. it's doing interior design for memory, no cap.
and what does it give you back? Returns 0 for success. that's it. 0, the most blessed number in Unix. when you see that zero you know she slayed πβ¨
β¨ SEE ALSO β¨
so like, this function has so many siblings it's basically a whole extended family reunion. the kernel file it lives in is ./drivers/gpu/drm/radeon/cik.c β go say hi π«Ά
and now, the entire group chat, in order, every single one, no skipping (i promised):
cik_get_allowed_info_register(9)cik_get_xclk(9)cik_mm_rdoorbell(9)cik_mm_wdoorbell(9)cik_srbm_select(9)ci_mc_load_microcode(9)cik_init_microcode(9)cik_tiling_mode_table_init(9)cik_select_se_sh(9)cik_create_bitmask(9)cik_get_rb_disabled(9)cik_setup_rb(9)cik_gpu_init(9)cik_scratch_init(9)cik_ring_test(9)cik_hdp_flush_cp_ring_emit(9)cik_fence_gfx_ring_emit(9)cik_fence_compute_ring_emit(9)cik_semaphore_ring_emit(9)cik_copy_cpdma(9)cik_ring_ib_execute(9)cik_ib_test(9)cik_cp_gfx_enable(9)cik_cp_gfx_load_microcode(9)cik_cp_gfx_start(9)cik_cp_gfx_fini(9)cik_cp_gfx_resume(9)cik_cp_compute_enable(9)cik_cp_compute_load_microcode(9)cik_cp_compute_start(9)cik_cp_compute_fini(9)cik_cp_compute_resume(9)cik_gpu_check_soft_reset(9)cik_gpu_soft_reset(9)cik_asic_reset(9)cik_gfx_is_lockup(9)cik_mc_program(9)cik_pcie_gart_tlb_flush(9)cik_pcie_gart_enable(9)cik_pcie_gart_disable(9)cik_pcie_gart_fini(9)cik_ib_parse(9)cik_vm_init(9)cik_vm_fini(9)cik_vm_decode_fault(9)cik_rlc_stop(9)cik_rlc_start(9)cik_rlc_resume(9)cik_enable_interrupts(9)cik_disable_interrupts(9)cik_disable_interrupt_state(9)cik_irq_init(9)cik_irq_set(9)cik_irq_ack(9)cik_irq_disable(9)cik_irq_suspend(9)cik_irq_fini(9)cik_get_ih_wptr(9)cik_irq_process(9)cik_startup(9)cik_resume(9)cik_suspend(9)cik_init(9)cik_fini(9)dce8_line_buffer_adjust(9)cik_get_number_of_dram_channels(9)dce8_dram_bandwidth(9)dce8_dram_bandwidth_for_display(9)dce8_data_return_bandwidth(9)dce8_dmif_request_bandwidth(9)dce8_available_bandwidth(9)dce8_average_bandwidth(9)dce8_latency_watermark(9)dce8_average_bandwidth_vs_dram_bandwidth_for_display(9)dce8_average_bandwidth_vs_available_bandwidth(9)dce8_check_latency_hiding(9)dce8_program_watermarks(9)dce8_bandwidth_update(9)cik_get_gpu_clock_counter(9)
likeβ¦ that's the whole squad. <rainbow>every last one of them</rainbow> π iykyk.
aaaand that's the page!! mwah π before you go β little sign-off moment: this whole thing comes courtesy of ./drivers/gpu/drm/radeon, dated October 2026, and the manual section is cik_mc_init(9) in case you need to cite your sources like the academic icon you are πβ¨ go forth and initialize those memory controller driver params, bestie. you got this ππ
π¦ 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