dmub_srv_su...ve_surf_addr(9)
π dmub_srv_su...ve_surf_addr(9) π
okay so bestie, welcome to the Kernel API Manual β this lil page is all about dmub_srv_subvp_save_surf_addr(9) and honestly it's giving "tiny function, big job" energy. let's get into it π«Ά
β¨ NAME β¨
dmub_srv_subvp_save_surf_addr β saves the primary and meta address for subvp on each flip πΎβ¨
πΈ SYNOPSIS πΈ
void dmub_srv_subvp_save_surf_addr (struct dmub_srv *dmub , const struct
dc_plane_address *addr , uint8_t subvp_index );
like, that's the whole signature, no cap π
π¦ ARGUMENTS π¦
dmubβ the dmub service itself. our main character πaddrβ the surface address that's gonna be programmed on the current flip.subvp_indexβ the index of the subvp pipe. it literally tells you which subvp pipe the address should be saved for. iykyk π§
π₯ DESCRIPTION π₯
so this function saves the surface flip addr into scratch registers π
why tho? because it's fixing a race condition between FW and the driver both reading / writing to the surface address at the same time π literally a "y'all go one at a time" situation.
and it's required because β and this is the key part β there is no EARLIEST_IN_USE_META. that's it, that's the reason. no cap π
β RETURN β
void β nothing comes back, bestie. it just does the thing and dips π
π SEE ALSO π
- 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_srv(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_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)
like, that's a lot of see-also, but every single one of them ate fr fr π
and that's the page bestie!! mwah π this icon came from ./drivers/gpu/drm/amd/display/... and the version/date vibes are October 2026, so like, future-era documentation, we love to see it β¨π¦π
π¦ 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