build_dmub_cmd_list(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’… build_dmub_cmd_list(9) โ€” Kernel API Manual, but make it make sense

okay so bestie, welcome to the <pink>Kernel API Manual</pink> entry for build_dmub_cmd_list. yes the title is also the function name, we love a self-titled icon ๐Ÿ‘‘


โœจ NAME โœจ

build_dmub_cmd_list โ€” literally builds an array of DMCUB commands that get sent to DMCUB. that's it, that's the whole vibe ๐Ÿซถ


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

void build_dmub_cmd_list (struct dc *dc , struct dc_surface_update
     *srf_updates , int surface_count , struct dc_stream_state *stream ,
     struct dc_state *context , struct dc_dmub_cmd dc_dmub_cmd[] , unsigned
     int *dmub_cmd_count );

no cap, that's the whole signature. copy it exactly, don't be cute with it ๐Ÿงš


๐ŸŒธ ARGUMENTS ๐ŸŒธ

  • dc โ€” the current DC state. main character energy, obviously ๐Ÿ’…
  • srf_updates โ€” an array of surface updates. all the glow-ups, queued up โœจ
  • surface_count โ€” how many surfaces have an updated. that's the count, bestie, we don't invent numbers here ๐Ÿ”ข
  • stream โ€” the corresponding stream to be updated in the current flip. the one actually getting the makeover ๐ŸŒˆ
  • context โ€” the new DC state to be programmed. the fresh fit, going on the hardware ๐Ÿ‘—
  • dc_dmub_cmd โ€” array of DMCUB commands to be sent to DMCUB. this is the group chat, and every command is getting sent ๐Ÿ“จ
  • dmub_cmd_count โ€” the count indicating the number of DMCUB commands in the dc_dmub_cmd array. like, how many messages are actually in the thread ๐Ÿงฎ

๐Ÿ’– DESCRIPTION ๐Ÿ’–

so what does it do. it builds an array of DMCUB commands to be sent to DMCUB. fr fr, that's the whole thing ๐Ÿฆ‹

and here's the part that matters: this function is required to build an array of commands and have them sent while the OTG lock is acquired. like, that's not optional, that's the whole reason it exists. do not skip the lock, do not pass go, do not collect $200 ๐Ÿ”’

bestie please respect the OTG lock. the function was literally built around it. it's giving "load-bearing" ๐Ÿ˜ญ

โญ RETURN โญ

void

nothing comes back. it does the thing and dips ๐Ÿ’€


๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘

the whole extended friend group, no one left out:

Kernel file ./drivers/gpu/drm/amd/display/dc/core/dc.c Overview(9), dc_stream_get_last_used_drr_vtotal(9), dc_stream_configure_crc(9), dc_stream_get_crc(9), dc_stream_adjust_vmin_vmax(9), dc_commit_state_no_check(9), dc_commit_streams(9), dc_check_state_update(9), dc_check_update_surfaces_for_stream(9), update_seamless_boot_flags(9), update_planes_and_stream_state(9), dc_check_address_only_update(9), could_mpcc_tree_change_for_active_pipes(9), commit_minimal_transition_state_in_dc_update(9), commit_minimal_transition_state(9), dc_update_state(9), dc_update_planes_and_stream(9), dc_enable_dcmode_clk_limit(9), dc_is_dmub_outbox_supported(9), dc_enable_dmub_notifications(9), dc_enable_dmub_outbox(9), dc_process_dmub_aux_transfer_async(9), dc_process_dmub_set_config_async(9), dc_process_dmub_set_mst_slots(9), dc_process_dmub_dpia_set_tps_notification(9), dc_process_dmub_dpia_hpd_int_enable(9), dc_print_dmub_diagnostic_data(9), dc_disable_accelerated_mode(9), dc_notify_vsync_int_state(9), dc_set_edp_power(9), dc_get_power_profile_for_dc_state(9), dc_get_det_buffer_size_from_state(9), dc_get_host_router_index(9), should_commit_intermediate_context(9), dc_update_probes_prepare(9), dc_update_probes_execute(9)


and that's the page!! ๐Ÿ’œ it lives at ./drivers/gpu/drm/amd/display/... and it's dated October 2026 โ€” so yeah, future vibes only, see u then bestie ๐ŸŽ€โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from