dm_hw_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… dm_hw_init(9) β€” the Kernel API Manual glow-up ✨

okay so bestie, welcome to dm_hw_init(9) from the Kernel API Manual β€” this is the function that literally boots up your DC device and gives it main character energy 🫢


🌸 NAME 🌸

dm_hw_init β€” Initialize DC device πŸ’– (yes that's the whole vibe, she initializes)


✨ SYNOPSIS ✨

int dm_hw_init (struct amdgpu_ip_block *ip_block );

that's it, that's the signature, no cap πŸ”₯


πŸŽ€ ARGUMENTS πŸŽ€

  • ip_block β€” a pointer to the amdgpu_ip_block for this hw instance. that's your girl right there, she's the one getting initialized πŸ’…

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so real talk: this function initializes the struct amdgpu_display_manager device. the way it works is it calls the initializers of each DM component, and then populates the struct with them. like, "make the pieces, then put the pieces in the box" β€” very organized, very slay 🌈

and here's the thing β€” even though the name dm_hw_init is giving "hardware only" energy, both hardware and software are initialized here. not me being surprised by that either πŸ™ˆ. splitting them out into their relevant init hooks is a future TODO item, so for now they're roommates, living together, sharing the same function. periodt.

some notable things that get initialized in here, bestie πŸ‘‘:

  • Display Core, both software and hardware πŸ’€ (yes both, we been knew)
  • the DC modules that we need (freesync and color management) 🌸
  • DRM software states ⭐
  • Interrupt sources and handlers πŸ”₯
  • Vblank support πŸ¦‹
  • Debug FS entries, if enabled (conditional icon, we respect her boundaries) ✨

πŸ‘‘ SEE ALSO πŸ‘‘

the Kernel file ./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c is right there, go read her, she's iconic πŸ’œ

and the whole friend group, in order because I'm not gonna do them dirty:

overview(9), update_planes_and_stream_adapter(9), dm_hw_fini(9), amdgpu_dm_dump_links_and_sinks(9), DM Lifecycle(9), atomic(9), fill_dc_dirty_rects(9), dm_arm_vblank_event_pre_programming(9), amdgpu_dm_crtc_complete_writeback(9), amdgpu_dm_mod_power_update_streams(9), amdgpu_dm_mod_power_setup_streams(9), amdgpu_dm_atomic_commit_tail(9), amdgpu_dm_atomic_check(9)

like imagine having this many mutuals. iykyk πŸ’…


heads up bestie: dm_hw_init is the init one β€” if you're looking for the teardown arc, that's dm_hw_fini(9) over in SEE ALSO. don't get them twisted 🫢

kisses, this page came from ./drivers/gpu/drm/amd/display/..., dated October 2026, and it lives in the Kernel API Manual β€” dm_hw_init(9), that's a wrap, mwah πŸ˜­πŸ’–βœ¨

πŸ“¦ where this page comes from