dmub_srv_wait_for_pending(9)
π dmub_srv_wait_for_pending(9) β Kernel API Manual, but make it cute
okay so bestie, welcome to the dmub_srv_wait_for_pending(9) page β¨ this is the kernel API manual entry, and honestly? it's a little icon and you're gonna get along great.
πΈ NAME πΈ
dmub_srv_wait_for_pending β a re-entrant wait for the messages that are currently pending π«Ά like, it waits for the stuff that's already in the queue, and yes you can call it again, that's the whole re-entrant vibe.
β¨ SYNOPSIS β¨
enum dmub_status dmub_srv_wait_for_pending (struct dmub_srv *dmub ,
uint32_t timeout_us );
that's the whole signature, no cap. two args, one return, done. π
π ARGUMENTS π
dmubβ the dmub service. the main character of this whole operation πtimeout_usβ the maximum number of microseconds to wait. so like, the patience budget β³ if it runs out, that's a you problem (jk, it's aDMUB_STATUS_TIMEOUT, we'll get there).
π¦ DESCRIPTION π¦
so here's the tea β this function waits until the commands that were queued prior to this call are complete. basically: "hey, everything I lined up before now β is it done? lmk." and it waits for exactly that.
but lowkey, there's a catch: if the interfaces stay busy because additional work is being submitted concurrently, this function will not continue to wait. it's not gonna sit there forever chasing new stuff. it's giving "I said what I said, my job is the old queue" energy π so don't expect it to hang around for the fresh work too β that's not its lane.
π₯ RETURN π₯
DMUB_STATUS_OKβ success π slay, it worked.DMUB_STATUS_TIMEOUTβ the wait for the buffer to flush timed out π it ran out of microseconds.DMUB_STATUS_INVALIDβ an unspecified error. vague, mysterious, not iconic π
π SEE ALSO π
okay this part is genuinely a list, buckle up bestie, the whole dmub family reunion is here π«Ά
kernel file ./drivers/gpu/drm/amd/display/dmub/dmub_srv.h β DMUB interface and operation(9), then:
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_hw_pwr_up(9)dmub_srv_wait_for_auto_load(9)dmub_srv_wait_for_phy_init(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)dmub_srv_get_fw_meta_info_from_raw_fw(9)
fr fr, that's every single one, not skipping a single bestie π
ngl, the "won't keep waiting for new concurrent work" bit is the one thing to actually remember here. that's the whole personality of this function, iykyk π
and that's the page, bestie π source is ./drivers/gpu/drm/amd/display/..., dated October 2026, and it's all filed under dmub_srv_wait_for_pending(9) β go forth and wait for exactly the pending stuff you signed up for, periodt π
π¦ 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