STRUCT DMUB_SRV(9)
πΈ NAME πΈ
okay so bestie, welcome to the Kernel API Manual page for struct dmub_srv(9) β literally the software state for dmcub π
β¨
like, this struct is the whole vibe-check container for the DMUB service: it's where the driver keeps all the bookkeeping it needs to talk to the dmcub firmware. she's holding the asic id, the user context, the firmware version, memory frames, shared state pointers... it's giving main character energy for the whole DMUB subsystem π
π¦ SYNOPSIS π¦
struct dmub_srv {
enum dmub_asic asic;
void *user_ctx;
uint32_t fw_version;
bool is_virtual;
bool no_ext_reg_access;
struct dmub_fb scratch_mem_fb;
struct dmub_fb ib_mem_gart;
struct dmub_fb cursor_offload_fb;
const struct dmub_srv_fb_info *fb_info;
volatile struct dmub_shared_state_feature_block *shared_state;
volatile struct dmub_cursor_offload_v1 *cursor_offload_v1;
volatile const struct dmub_fw_state *fw_state;
};
no cap, that's the whole thing β copy it exactly, don't go renaming fields, bestie π«Ά
π Members π
here's the group chat roll call, one by one π
asicβ the dmub asic identifier. like her little name tag at the party π·οΈuser_ctxβ a user provided context for thedmub_srv. you bring your own stuff, she holds onto it for you π«Άfw_versionβ the current firmware version, if any. if any is doing a lot of work there, so clock that πis_virtualβfalseif hardware support only. so like, virtual mode is the special guest, hardware-only is the default reality check β¨no_ext_reg_accessβ (the page literally doesn't describe this one, she's just chillin' in the struct) πscratch_mem_fbβ (also no blurb on this page, but she's there, holding her frame buffer spot) πib_mem_gartβ (no description given here either β iconic but mysterious) πcursor_offload_fbβ (again, no blurb in this page, just vibes) πfb_infoβ (same deal, present in the struct, no official description on this page) π¦shared_stateβ the dmub shared state between firmware and driver. it's a collab, both parties write in it π€cursor_offload_v1β the Cursor offload state π±οΈβ¨fw_stateβ dmub firmware state pointer (debug purpose only). read that again: debug purpose ONLY, don't go building your whole personality on it πscratch_mem_fb,ib_mem_gart,cursor_offload_fb,fb_info,no_ext_reg_accessβ fr fr, if you want the full tea on those, theSEE ALSOcrowd below is where you'd look π
π SEE ALSO π
okay this list is long and honestly kind of iconic β the whole dmub extended universe π«
- Kernel file
./drivers/gpu/drm/amd/display/dmub/dmub_srv.h - 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_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)
π reminder bestie: fw_state is debug purpose only. that's a technical caveat, not a suggestion, okay? don't ship it, don't build on it, just peek and move on π
and that's the page! she lives at ./drivers/gpu/drm/amd/display/... and this edition dropped in October 2026 πΈ signed, sealed, struct dmub_srv(9) β slay, go read the rest of the dmub extended universe, ily, bye πβ¨π
π¦ 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