STRUCT DMUB_SRV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 the dmub_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 β€” false if 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, the SEE ALSO crowd below is where you'd look πŸ‘‘

🌟 SEE ALSO 🌟

okay this list is long and honestly kind of iconic β€” the whole dmub extended universe πŸ’«


πŸ’€ 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