amdgpu_device_set_cg_state(9)
π amdgpu_device_set_cg_state(9) β from the Kernel API Manual, bestie
okay so bestie, we're diving into the kernel API manual today and this one is called amdgpu_device_set_cg_state(9) and it is literally the remote control for your GPU's clockgating β¨ pull up a chair π
β¨ NAME β¨
amdgpu_device_set_cg_state β set clockgating for amdgpu device π
π¦ SYNOPSIS π¦
int amdgpu_device_set_cg_state (struct amdgpu_device *adev , enum
amd_clockgating_state state );
that's the whole vibe, no cap π
πΈ ARGUMENTS πΈ
adevβ anamdgpu_devicepointer, aka your little handle on the GPU itself π«Άstateβ the clockgating state, and it's either gate or ungate (yes those are the actual words, that's the whole enum energy) π
π₯ DESCRIPTION π₯
okay so here's what happens, fr fr: the list of all the hardware IPs that make up the asic gets walked, and the set_clockgating_state callbacks are run for each one. every single IP. no skipping. main character energy for the entire list π
so like, the late initialization pass? that's where you're enabling clockgating for the hardware IPs. and the fini or suspend pass? that's where you're disabling clockgating for the hardware IPs. same function, opposite directions, iconic π
and it returns 0 on success, or a negative error code on failure β so if you see a negative number, that's the function telling you something went wrong π
ngl, negative error codes are the blueprint, so always check the return value before you go acting like everything's slay π
π§ SEE ALSO π§
the kernel file lives right here, bestie:
./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
and now the friend group, hold on, this is a long one, take a sip of water π
pcie_replay_count(9)board_info(9)uma/carveout_options(9)uma/carveout(9)amdgpu_device_supports_px(9)amdgpu_device_supports_boco(9)amdgpu_device_supports_baco(9)amdgpu_device_supports_smart_shift(9)amdgpu_device_mm_access(9)amdgpu_device_aper_access(9)amdgpu_device_vram_access(9)amdgpu_device_get_rev_id(9)amdgpu_device_asic_init(9)amdgpu_device_mem_scratch_init(9)amdgpu_device_mem_scratch_fini(9)amdgpu_device_program_register_sequence(9)amdgpu_device_pci_config_reset(9)amdgpu_device_pci_reset(9)amdgpu_device_resize_fb_bar(9)amdgpu_device_need_post(9)amdgpu_device_should_use_aspm(9)amdgpu_device_vga_set_decode(9)amdgpu_device_check_block_size(9)amdgpu_device_check_vm_size(9)amdgpu_device_check_arguments(9)amdgpu_switcheroo_set_state(9)amdgpu_switcheroo_can_switch(9)amdgpu_device_enable_virtual_display(9)amdgpu_device_parse_gpu_info_fw(9)amdgpu_device_ip_early_init(9)amdgpu_device_ip_init(9)amdgpu_device_fill_reset_magic(9)amdgpu_device_check_vram_lost(9)amdgpu_device_ip_late_init(9)amdgpu_device_smu_fini_early(9)amdgpu_device_ip_fini(9)amdgpu_device_delayed_init_work_handler(9)amdgpu_device_ip_suspend_phase1(9)amdgpu_device_ip_suspend_phase2(9)amdgpu_device_ip_suspend(9)amdgpu_device_ip_resume_phase1(9)amdgpu_device_ip_resume_phase2(9)amdgpu_device_ip_resume_phase3(9)amdgpu_device_ip_resume(9)amdgpu_device_detect_sriov_bios(9)amdgpu_device_asic_has_dc_support(9)amdgpu_device_has_dc_support(9)amdgpu_device_check_iommu_direct_map(9)amdgpu_device_check_iommu_remap(9)amdgpu_device_init(9)amdgpu_device_fini_hw(9)amdgpu_device_evict_resources(9)amdgpu_device_pm_notifier(9)amdgpu_device_prepare(9)amdgpu_device_complete(9)amdgpu_device_suspend(9)amdgpu_device_resume(9)amdgpu_device_reset_sriov(9)amdgpu_device_has_job_running(9)amdgpu_device_should_recover_gpu(9)amdgpu_device_gpu_recover(9)amdgpu_device_partner_bandwidth(9)amdgpu_device_gpu_bandwidth(9)amdgpu_device_get_pcie_info(9)amdgpu_device_is_peer_accessible(9)amdgpu_pci_error_detected(9)amdgpu_pci_mmio_enabled(9)amdgpu_pci_slot_reset(9)amdgpu_pci_resume(9)amdgpu_device_halt(9)amdgpu_device_get_gang(9)amdgpu_device_switch_gang(9)amdgpu_device_enforce_isolation(9)
like I said. whole friend group. ate π
and that's the page, bestie π«Ά it lives in ./drivers/gpu/drm/amd/amdgpu, this is the Kernel API Manual, dated October 2026 β go forth and gate those clocks responsibly πβ¨
π¦ 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