UNION DMUB_ADDR(9)
π 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
- 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