amdgpu_device_ip_resume(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… amdgpu_device_ip_resume β€” the Kernel API Manual page, but make it make sense

okay so bestie, welcome to the Kernel API Manual β€” this is amdgpu_device_ip_resume(9) and honestly it's kind of a big deal in the amdgpu world 🫢


✨ NAME ✨

amdgpu_device_ip_resume β€” run resume for hardware IPs πŸ’–


🌸 SYNOPSIS 🌸

int amdgpu_device_ip_resume (struct amdgpu_device *adev );

like, that's the whole vibe. one function, one pointer, go off πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • adev β€” amdgpu_device pointer. literally just the device, she's the main character here πŸ¦‹

πŸ’… DESCRIPTION πŸ’…

So this is the main resume function for hardware IPs β€” the glow-up moment where the hardware IPs wake back up and get their life together ✨

Here's the tea though: the hardware IPs are split into two resume functions, and it's not because someone was being extra. It's because those same two functions also get used in recovering from a GPU reset, and there are some additional steps that need to be taken between them πŸ”₯ So the split is doing real work, iykyk.

In this case (S3/S4) they are run sequentially β€” one after the other, no cutting the line πŸ’…

Return value check, no cap: it returns 0 on success, and a negative error code on failure 😭 So like, if you get a negative number back, something did not slay.


πŸ¦‹ SEE ALSO πŸ¦‹

First up, the file where she actually lives β€” kernel file ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c πŸ“

And now the whole friend group, fr fr β€” go say hi to all of them:

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_suspend(9), amdgpu_device_ip_resume_phase1(9), amdgpu_device_ip_resume_phase2(9), amdgpu_device_ip_resume_phase3(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) πŸ‘‘

Note how amdgpu_device_ip_resume_phase1(9), amdgpu_device_ip_resume_phase2(9) and amdgpu_device_ip_resume_phase3(9) are all in there? yeah that's the two-function-split situation living its truth 🌈


lowkey a reminder: this is a kernel internal, so read the source, bestie β€” ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c is right there πŸ’€

okay that's the whole page πŸŽ€ sign-off time: this came from the kernel doc source over in ./drivers/gpu/drm/amd/amdgpu, dated October 2026, and it's amdgpu_device_ip_resume(9) in the Kernel API Manual πŸ’œ go resume something, periodt ✨

πŸ“¦ where this page comes from