drm_dp_mst_dpcd_write(9)
π
drm_dp_mst_dpcd_write β like, the whole vibe (Kernel API Manual, bestie) π
okay so picture this: you're deep in the DRM/KMS mines, you've got an MST topology, and you need to shove some bytes into a remote device's DPCD. Bestie. This is THAT function. It's drm_dp_mst_dpcd_write, and she is the sideband-messaging glow-up of your fave local DPCD writer. Let's get into it β¨
πΈ NAME πΈ
drm_dp_mst_dpcd_write β write a series of bytes to the DPCD via sideband π«
β¨ SYNOPSIS β¨
ssize_t drm_dp_mst_dpcd_write (struct drm_dp_aux *aux , unsigned int
offset , void *buffer , size_t size );
π¦ ARGUMENTS π¦
auxβ the Fake sideband AUX CH π«Ά (yes, "Fake" is doing a lot of work here, and yes, she's iconic for it)offsetβ address of the (first) register to write β where the bytes are gonna land, bestie πbufferβ buffer containing the values to write β this is the cargo, the whole payload, the main character of the operation πsizeβ number of bytes inbufferβ how much of that cargo actually ships π
π DESCRIPTION π
So here's the tea: this does the same functionality for remote devices via sideband messaging as drm_dp_dpcd_write does for local devices via an actual AUX CH. Not me comparing the two β the manpage literally did it first π
Like, same energy, different transport. Remote gets the sideband-messaging route, local gets the real AUX CH route, and both of them are out here writing bytes like the icons they are π β¨
π₯ RETURN π₯
- number of bytes written on success π
- negative error code on failure π
ngl bestie, always check that return value. A negative number is not a cute little vibe, it's something going wrong π«Ά
π SEE ALSO π
this list is LONG and we're not skipping a single one of them, okay? every name, exactly as written. no cap. π
Kernel file ./drivers/gpu/drm/display/drm_dp_mst_topology.c
dp mst helper(9)Branch device and port refcounting(9)drm_dp_mst_get_mstb_malloc(9)drm_dp_mst_put_mstb_malloc(9)drm_dp_mst_get_port_malloc(9)drm_dp_mst_put_port_malloc(9)drm_dp_mst_topology_try_get_mstb(9)drm_dp_mst_topology_get_mstb(9)drm_dp_mst_topology_put_mstb(9)drm_dp_mst_topology_try_get_port(9)drm_dp_mst_topology_get_port(9)drm_dp_mst_topology_put_port(9)drm_dp_mst_dpcd_read(9)drm_dp_mst_connector_late_register(9)drm_dp_mst_connector_early_unregister(9)drm_dp_add_payload_part1(9)drm_dp_remove_payload_part1(9)drm_dp_remove_payload_part2(9)drm_dp_add_payload_part2(9)drm_dp_get_vc_payload_bw(9)drm_dp_read_mst_cap(9)drm_dp_mst_topology_mgr_set_mst(9)drm_dp_mst_topology_queue_probe(9)drm_dp_mst_topology_mgr_suspend(9)drm_dp_mst_topology_mgr_resume(9)drm_dp_mst_hpd_irq_handle_event(9)drm_dp_mst_hpd_irq_send_new_request(9)drm_dp_mst_detect_port(9)drm_dp_mst_edid_read(9)drm_dp_mst_get_edid(9)drm_dp_atomic_find_time_slots(9)drm_dp_atomic_release_time_slots(9)drm_dp_mst_atomic_setup_commit(9)drm_dp_mst_atomic_wait_for_dependencies(9)drm_dp_mst_root_conn_atomic_check(9)drm_dp_mst_update_slots(9)drm_dp_check_act_status(9)drm_dp_calc_pbn_mode(9)drm_dp_mst_dump_topology(9)drm_dp_mst_port_downstream_of_parent(9)drm_dp_mst_add_affected_dsc_crtcs(9)drm_dp_mst_atomic_enable_dsc(9)drm_dp_mst_atomic_check_mgr(9)drm_dp_mst_atomic_check(9)drm_atomic_get_mst_topology_state(9)drm_atomic_get_old_mst_topology_state(9)drm_atomic_get_new_mst_topology_state(9)drm_dp_mst_topology_mgr_init(9)drm_dp_mst_topology_mgr_destroy(9)drm_dp_mst_register_i2c_bus(9)drm_dp_mst_unregister_i2c_bus(9)drm_dp_mst_is_virtual_dpcd(9)drm_dp_mst_aux_for_parent(9)drm_dp_mst_dsc_aux_for_port(9)
π§ cute little sign-off π§
okay that's the whole page, bestie!! π this one lives in ./drivers/gpu/drm/display, it's tagged October 2026, and it belongs to the Kernel API Manual. go forth and write those sideband bytes responsibly. mwah ππ¦β¨
π¦ 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