amdgpu_devi...spend_phase2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 amdgpu_devi...spend_phase2(9) 🌸

okay so real talk: you're reading the Kernel API Manual right now, and this is the page for amdgpu_device_ip_suspend_phase2. bestie, it's giving "phase one was the warm-up, this is the actual goodbye." let's get into it πŸ’…


✨ NAME ✨

amdgpu_device_ip_suspend_phase2 β€” run suspend for hardware IPs (phase 2). literally what it says on the tin πŸŽ€


🫢 SYNOPSIS 🫢

int amdgpu_device_ip_suspend_phase2 (struct amdgpu_device *adev );

that's it. one function, one argument, one vibe. her signature ate and left no crumbs ✨


πŸ’… ARGUMENTS πŸ’…

  • adev β€” an amdgpu_device pointer. that's your whole handle on the GPU device, queen πŸ‘‘

πŸ”₯ DESCRIPTION πŸ”₯

okay so this is the main suspend function for hardware IPs. not a side quest, the main character energy one πŸ”₯

here's the plot: the list of all the hardware IPs that make up the asic gets walked β€” every single one, no skipping, we're doing the whole roster πŸ’― β€” clockgating is disabled, and then the suspend callbacks are run.

and what does suspend actually do? it puts the hardware and software state in each IP into a state suitable for suspend. both. hardware state and software state. no cap, both of them 🫢

return value tea β˜•:

  • 0 on success β€” slay
  • negative error code on failure β€” not slay, but at least it tells you 😭

πŸ¦‹ SEE ALSO πŸ¦‹

first up, the source file, and yes it's exactly this path: ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c πŸ“

and now the extended friend group β€” the whole amdgpu cinematic universe, in order, no one gets left out of the group chat:

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(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)

i know. it's a lot. she's popular πŸ’…βœ¨


lowkey reminder bestie: 0 means you're golden, negative means something went sideways. don't ignore the return value, she's trying to tell you something πŸ™ˆ

that's the whole page, mwah 🫢 this one lives under ./drivers/gpu/drm/amd/amdgpu and it's stamped October 2026 β€” so it's basically a little time capsule from the kernel, iconic behavior honestly πŸŽ€πŸ’œ

πŸ“¦ where this page comes from