UNION DMUB_ADDR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– union dmub_addr(9) πŸ’–

okay so you're in the Kernel API Manual and you clicked on union dmub_addr, welcome, pull up a chair 🫢 we're gonna get through this together and honestly it's a short one, you got this.


✨ NAME ✨

union dmub_addr β€” DMUB physical/virtual 64-bit address. that's the whole vibe. a 64-bit address, and the union lets it be physical or virtual depending on how you look at it. main character energy for one little number πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole shape of it, no cap, this is literally the entire struct:

union dmub_addr {
    struct {
      uint32_t low_part;
      uint32_t high_part;
    } u;
    uint64_t quad_part;
 };

so yeah bestie β€” one union, two ways to look at the same 64 bits πŸ‘‘ you can grab it as the full quad_part (uint64_t, the whole thing at once, iconic), or peek at it through u and get the low_part and high_part as separate uint32_ts. same bytes, different outfit. the way that works is genuinely so clean 🌸


πŸŽ€ MEMBERS πŸŽ€

okay so the source page has a Members section and… it's empty 😭 not a single member documented under it. the fields are right there in the SYNOPSIS (u, low_part, high_part, quad_part) but the Members section itself? silent. mysterious. leaving us on read πŸ™ˆ so don't come for me, that's just what the page says fr fr.


πŸ”₯ SEE ALSO πŸ”₯

buckle up, because this thing has friends. and by friends I mean a whole group chat of them. the source is Kernel file ./drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h, and everything below lives in that same saga ✨

  • struct dmub_cursor_offload_pipe_data_dcn30_v1(9)
  • struct dmub_cursor_offload_pipe_data_dcn401_v1(9)
  • struct dmub_cursor_offload_pipe_data_dcn60_v1(9)
  • struct dmub_cursor_offload_pipe_data_v1(9)
  • struct dmub_cursor_offload_payload_data_v1(9)
  • struct dmub_cursor_offload_stream_v1(9)
  • struct dmub_cursor_offload_v1(9)
  • union dmub_fw_meta_feature_bits(9)
  • struct dmub_fw_meta_info(9)
  • union dmub_fw_meta(9)
  • struct dmcub_trace_buf_entry(9)
  • union dmub_fw_boot_status(9)
  • enum dmub_fw_boot_status_bit(9)
  • enum dmub_cursor_offload_comand_type(9)
  • union dmub_fw_boot_options(9)
  • enum dmub_shared_state_feature_id(9)
  • struct dmub_shared_state_ips_fw(9)
  • struct dmub_shared_state_ips_driver(9)
  • struct dmub_shared_state_cursor_offload_v1(9)
  • struct dmub_shared_state_feature_block(9)
  • union dmub_gpint_data_register(9)
  • enum dmub_out_cmd_type(9)
  • struct dmub_cmd_header(9)
  • struct dmub_rb_cmd_common(9)
  • struct dmub_cmd_PLAT_54186_wa(9)
  • struct dmub_rb_cmd_PLAT_54186_wa(9)
  • enum dmub_cmd_mall_type(9)
  • struct dmub_rb_cmd_mall(9)
  • enum dmub_cmd_cab_type(9)
  • struct dmub_rb_cmd_cab_for_ss(9)
  • enum dmub_fams2_allow_delay_check_mode(9)
  • enum dmub_cmd_idle_opt_type(9)
  • struct dmub_rb_cmd_idle_opt_dcn_restore(9)
  • struct dmub_dcn_notify_idle_cntl_data(9)
  • struct dmub_rb_cmd_idle_opt_dcn_notify_idle(9)
  • enum dmub_idle_opt_dc_power_state(9)
  • struct dmub_idle_opt_set_dc_power_state_data(9)
  • struct dmub_rb_cmd_idle_opt_set_dc_power_state(9)
  • struct dmub_clocks(9)
  • enum dmub_cmd_clk_mgr_type(9)
  • struct dmub_rb_cmd_clk_mgr_notify_clocks(9)
  • struct dmub_cmd_digx_encoder_control_data(9)
  • struct dmub_rb_cmd_digx_encoder_control(9)
  • struct dmub_cmd_set_pixel_clock_data(9)
  • struct dmub_cmd_enable_disp_power_gating_data(9)
  • struct dmub_rb_cmd_enable_disp_power_gating(9)
  • struct dmub_dig_transmitter_control_data_v1_7(9)
  • union dmub_cmd_dig1_transmitter_control_data(9)
  • struct dmub_rb_cmd_dig1_transmitter_control(9)
  • struct dmub_rb_cmd_domain_control_data(9)
  • struct dmub_rb_cmd_domain_control(9)
  • struct dmub_rb_cmd_dpphy_init(9)
  • enum dp_aux_request_action(9)
  • enum aux_return_code_type(9)
  • enum aux_channel_type(9)
  • struct aux_transaction_parameters(9)
  • struct dmub_rb_cmd_hpd_sense_notify(9)
  • enum dmub_phy_fsm_state(9)
  • enum dmub_abm_ace_curve_type(9)
  • enum dmub_abm_histogram_type(9)
  • enum dmub_cmd_panel_cntl_type(9)
  • struct dmub_cmd_panel_cntl_data(9)
  • struct dmub_rb_cmd_panel_cntl(9)
  • struct dmub_cmd_cable_id_input(9)
  • struct dmub_cmd_cursor_offload_init_data(9)
  • struct dmub_rb_cmd_cursor_offload_init(9)
  • struct dmub_cmd_cursor_offload_stream_data(9)
  • struct dmub_rb_cmd_cursor_offload_stream_cntl(9)
  • union dmub_rb_cmd(9)
  • union dmub_rb_out_cmd(9)
  • struct dmub_rb_init_params(9)
  • struct dmub_rb(9)

like I said. a lot of friends. go say hi to a few of them, they're all linked in the same header and they all have notes πŸ¦‹


ngl the biggest flex here is that a 64-bit address gets its own union and its own manual page. tiny but iconic. not me being obsessed with quad_part πŸ’€

and that's the whole page, bestie, you ate it πŸŽ€ cute little sign-off time: this was the Kernel API Manual entry for union dmub_addr β€” source path ./drivers/gpu/drm/amd/display/..., dated October 2026, and the page footer literally just repeats union dmub_addr(9) at you one more time like a little goodbye kiss πŸ’œβœ¨

πŸ“¦ where this page comes from