DMUB INTERFACE AND OPERATION(9)
π DMUB interface and operation (9) π
Okay bestie, welcome to the Kernel API Manual! This is the whole vibe for DMUB interface and operation. DMUB is the interface to the display DMCUB microcontroller on DCN hardware. It delegates hardware initialization and command submission to the microcontroller. DMUB is the shortname for DMCUB. π
π¨ Not thread-safe! Ensure that all access to the interface is properly synchronized by the caller. No cap β the caller has to handle the sync. π
Initialization and usage of the DMUB service should be done in the steps given below:
dmub_srv_createdmub_srv_has_hw_supportdmub_srv_calc_region_infodmub_srv_hw_init
The call to dmub_srv_create is required to use the server. β¨
The calls to dmub_srv_has_hw_support and dmub_srv_calc_region_info are helpers to query cache window size and allocate framebuffer(s) for the cache windows. Very much the βget your space readyβ era. π
The call to dmub_srv_hw_init programs the DMCUB registers to prepare for command submission. Commands can be queued via dmub_srv_fb_cmd_queue and executed via dmub_srv_fb_cmd_execute. π«Ά
If the queue is full the dmub_srv_wait_for_idle call can be used to wait until the queue has been cleared. Lowkey the chill-until-thereβs-room move. π
Destroying the DMUB service can be done by calling dmub_srv_destroy. This does not clear DMUB hardware state, only software state. Important, bestie β hardware state stays put. π
The interface is intended to be standalone and should not depend on any other component within DAL. Main character energy, periodt. π
πΈ SEE ALSO πΈ
- Kernel file
./drivers/gpu/drm/amd/display/dmub/dmub_srv.h 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_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)dmub_srv_get_fw_meta_info_from_raw_fw(9)
Source: ./drivers/gpu/drm/amd/display/... Β· Date: October 2026 Β· Page: DMUB interfa...nd operation(9) β mwah, bestie, go sync your access properly! πβ¨π
π¦ 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