dmub_srv_wait_for_hw_pwr_up(9)
π dmub_srv_wait_for_hw_pwr_up(9) β Kernel API Manual
okay so bestie, welcome to the glow-up era of the kernel API manual β¨ today's main character is dmub_srv_wait_for_hw_pwr_up(9) and honestly? she's serving patience, she's serving firmware, and she's lowkey the reason your display doesn't just give up mid-boot πΈ
β¨ NAME β¨
dmub_srv_wait_for_hw_pwr_up β okay so this one waits until the firmware hardware power up is, like, actually completed π no cap, that's the whole job.
π¦ SYNOPSIS π¦
enum dmub_status dmub_srv_wait_for_hw_pwr_up (struct dmub_srv *dmub ,
uint32_t timeout_us );
like that's it, that's the vibe π«Ά
π ARGUMENTS π
dmubβ the dmub service π« literally the whole service, she's the one doing the waiting.timeout_usβ the maximum number of microseconds to wait β³ like a hard limit so we're not sitting here forever, iykyk.
π DESCRIPTION π
Waits until firmware hardware is powered up π₯ periodt. That's the entire plot.
the max wait time is given in microseconds so you don't end up spinning forever π like ngl, nobody wants an infinite loop moment in the kernel β that's not the vibe, that's a crash waiting to happen π so you hand it a budget, and it respects the budget.
π RETURN π
DMUB_STATUS_OKβ success π slay, hardware is up, we love to see it.DMUB_STATUS_TIMEOUTβ timed out π ran out of your microseconds, no power up, better luck next time.DMUB_STATUS_INVALIDβ unspecified error π like... something went wrong, we don't know what, that's the vibe, moving on.
π§ SEE ALSO π§
okay bestie, buckle up, this list is LONG and honestly iconic π
Kernel file ./drivers/gpu/drm/amd/display/dmub/dmub_srv/dmub_srv.h β ah wait, the manual says ./drivers/gpu/drm/amd/display/dmub/dmub_srv.h, copy it exactly bestie, don't let me retype things β¨ β plus DMUB interface and operation(9), struct dmub_region(9), struct dmub_window(9), struct dmub_fb(9), struct dmub_srv_region_params(9), struct dmub_srv_fw_meta_info_params(9), struct dmub_srv_region_info(9), struct dmub_srv_memory_params(9), struct dmub_srv_fb_info(9), struct dmub_soc_fb_info(9), struct dmub_diagnostic_data(9), struct dmub_preos_info(9), struct dmub_srv_base_funcs(9), struct dmub_srv_hw_funcs(9), struct dmub_srv_create_params(9), struct dmub_srv(9), struct dmub_notification(9), dmub_srv_create(9), dmub_srv_destroy(9), dmub_srv_calc_region_info(9), dmub_srv_has_hw_support(9), dmub_srv_is_hw_init(9), dmub_srv_hw_init(9), dmub_srv_hw_reset(9), dmub_srv_fb_cmd_queue(9), dmub_srv_fb_cmd_execute(9), dmub_srv_wait_for_auto_load(9), dmub_srv_wait_for_phy_init(9), dmub_srv_wait_for_pending(9), dmub_srv_wait_for_idle(9), dmub_srv_send_gpint_command(9), dmub_srv_get_gpint_response(9), dmub_srv_get_gpint_dataout(9), dmub_srv_flush_buffer_mem(9), dmub_srv_get_fw_boot_status(9), dmub_srv_send_inbox0_cmd(9), dmub_srv_wait_for_inbox0_ack(9), dmub_srv_subvp_save_surf_addr(9), dmub_srv_set_power_state(9), dmub_srv_reg_cmd_execute(9), dmub_srv_cmd_get_response(9), dmub_srv_sync_inboxes(9), dmub_srv_wait_for_inbox_free(9), dmub_srv_update_inbox_status(9), dmub_srv_get_preos_info(9), and last but never least dmub_srv_get_fw_meta_info_from_raw_fw(9) π
bestie fr fr, go read those if you want the full lore β this page is just the one little wait function, the rest of the family is out there living their lives πΈ
π okay that's the whole page, hope it ate π
this little diva lives over at ./drivers/gpu/drm/amd/display/... (yes, that's literally how the footer writes it, don't come for me π), dated October 2026, and she goes by dmub_srv_wait_for_hw_pwr_up(9) π bye bestie, go wait for your hardware responsibly β¨
π¦ 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