amdgpu_device_ip_late_init(9)
π amdgpu_device_ip_late_init β the Kernel API Manual glow-up
okay so bestie, welcome to the Kernel API Manual page for amdgpu_device_ip_late_init(9) β yes that's the manual name, yes we're being fancy about it, and yes this is the late init pass, so it's giving main character energy arriving fashionably last to the init party π
β¨ NAME β¨
amdgpu_device_ip_late_init β run late init for hardware IPs π
πΈ SYNOPSIS πΈ
int amdgpu_device_ip_late_init (struct amdgpu_device *adev );
that's it. one pointer, one int coming back at you. clean, iconic, no notes β¨
π¦ ARGUMENTS π¦
adevβ amdgpu_device pointer π«Ά literally just the pointer to the amdgpu_device, that's the whole vibe
π DESCRIPTION π
so this is the late initialization pass for the hardware IPs, right? like the afterparty of init π
here's the tea: the list of all the hardware IPs that make up the asic gets walked πΆββοΈ and the late_init callbacks get run for each one.
and what does late_init actually cover? two things, bestie:
- any special initialization that an IP needs after all of the [IPs] have been initialized β like it needs the whole squad present before it does its thing π
- or something that just needs to happen late in the init process β timing is everything, iykyk β°
returns 0 on success β¨ β and a negative error code on failure π (so if you see a negative number, that's a no from the GPU, fr fr).
π SEE ALSO π
the source file, first of all, because we respect the source:
Kernel file ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
and now the friends-of-the-page, the whole group chat, every single one, no cap π§:
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_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, that's the whole roster π every last one of them, we do not gatekeep the SEE ALSO section on this page, periodt π₯
π‘ quick vibe check:late_init= the late pass, after everything's initialized or just late in init. returns0when it slays, negative error code when it doesn't. no guessing beyond that, bestie β that's what the manpage says π
and that's the page!! π it lives in ./drivers/gpu/drm/amd/amdgpu, dated October 2026, from the Kernel API Manual, and you can find it filed under amdgpu_device_ip_late_init(9) π¦ go forth and init late, you absolute icon βπ
π¦ 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