drm_dp_mst_a...c_enable_dsc(9)
π drm_dp_mst_atomic_enable_dsc(9) π
okay so this is from the Kernel API Manual bestie, and it's genuinely one of those little functions that does exactly what the name says β no lore, no plot twist. It's drm_dp_mst_atomic_enable_dsc, and it flips the DSC switch on a port. On or off. That's the whole vibe. β¨
πΈ NAME πΈ
drm_dp_mst_atomic_enable_dsc β Set DSC Enable Flag to On/Off π
π¦ SYNOPSIS π¦
int drm_dp_mst_atomic_enable_dsc (struct drm_atomic_commit *state ,
struct drm_dp_mst_port *port , int pbn , bool enable );
π ARGUMENTS π
stateβ Pointer to the newdrm_atomic_commit. like, the fresh commit bestie, the one you're building rn πportβ Pointer to the affected MST Port. this is the port in question, the main character of the operation πpbnβ Newly recalculated bw required for link with DSC enabled. yes it's the newly recalculated bandwidth, don't just pass vibes, pass the actual number πenableβ Boolean flag to enable or disable DSC on the port.true= on,false= off, no in-between, no situationships π«Ά
β DESCRIPTION β
so what this does: it enables DSC on the given Port by recalculating its vcpi from the pbn you provided, and then it sets the dsc_enable flag to keep track of which ports have DSC enabled. π§
like literally that's it. recalc the vcpi from pbn, flip the bookkeeping flag, know which ports are DSC-girlies and which aren't. lowkey iconic how tidy it is. π
reminder bestie: the pbn is the newly recalculated bandwidth for the link with DSC enabled β so it's on you to have done that math before you call this. no cap. π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/display/drm_dp_mst_topology.c, plus the whole friend group:
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_dpcd_write(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_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)
that's the whole page bestie, go read the source if you want more lore π
π sign-off time: this one lives in./drivers/gpu/drm/display, dated October 2026, and it's filed underdrm_dp_mst_a...c_enable_dsc(9)β mwah, slay, periodt β¨π
π¦ 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