amdgpu_device_ip_suspend(9)
π€ amdgpu_device_ip_suspend(9) β the Kernel API Manual page, bestie edition π€
okay so this is page amdgpu_device_ip_suspend(9) from the Kernel API Manual, and it's literally the "go to sleep" button for your GPU's hardware IPs. grab a blanket, we're doing a vibe check on suspend π«Ά
β¨ NAME β¨
amdgpu_device_ip_suspend β run suspend for hardware IPs π΄
β¨ SYNOPSIS β¨
int amdgpu_device_ip_suspend (struct amdgpu_device *adev );
β¨ ARGUMENTS β¨
adevβ amdgpu_device pointer. yes queen, it's the device struct, it's always the device struct π
β¨ DESCRIPTION β¨
okay so this is the main suspend function for hardware IPs. main character energy fr fr π
The way it works: the list of all the hardware IPs that make up the asic gets walked through, clockgating gets disabled, and the suspend callbacks get run. it's giving "roll call but for silicon" πΈ
and what does suspend actually do? it puts the hardware and software state in each IP into a state suitable for suspend. so like, everything tucks itself in properly instead of just... falling asleep on the couch ποΈβ¨
Returns 0 on success, negative error code on failure. no cap, that's the whole return contract π
lowkey important: that negative error code on failure is your cue to actually check the return value, bestie. don't just ignore it and hope π
β¨ SEE ALSO β¨
so there are a lot of siblings in this family, and honestly? iconic. every single one of them, right here π
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_set_cg_state(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_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)
and the kernel file it lives in, obviously: ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c π
and that's the page!! π this whole thing comes to you from ./drivers/gpu/drm/amd/amdgpu, dated October 2026 β mwah, slay, go check your return values, ily byeee ππ¦β
π¦ 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