drm_dp_mst_...handle_event(9)
β¨ drm_dp_mst_hpd_irq_handle_event π
okay bestie, welcome to the Kernel API Manual π β this is the page for drm_dp_mst_hpd_irq_handle_event, and it's lowkey the function that handles your MST hotplug IRQ events. let's get into it π¦
πΈ NAME πΈ
drm_dp_mst_hpd_irq_handle_event β MST hotplug IRQ handle MST event β¨ like, the function that deals with MST events when the hotplug interrupt comes knocking π«Ά
β SYNOPSIS β
int drm_dp_mst_hpd_irq_handle_event (struct drm_dp_mst_topology_mgr *mgr
, const u8 *esi , u8 *ack , bool *handled );
no cap, that's the whole signature π
π ARGUMENTS π
mgrβ the manager you're notifying the IRQ for π like, this is the topology manager in questionesiβ4bytes straight fromSINK_COUNT_ESIπΈ (yes, exactly 4, don't come at me with 3)ackβ4bytes used to ack events, starting fromSINK_COUNT_ESIβ¨handledβ whether the hpd interrupt was consumed or not π (a lil bool so you know if it got ate)
π DESCRIPTION π
so the driver literally calls this when it detects a HPD IRQ π₯ β and it passes along the value of the DEVICE_SERVICE_IRQ_VECTOR_ESI0 with it. then the topology manager goes ahead and processes the sideband messages that came in, as indicated in that DEVICE_SERVICE_IRQ_VECTOR_ESI0, and it sets the corresponding flags that the Driver has to ack to the DP receiver later. periodt π
heads up bestie π¨ β the driver shall also calldrm_dp_mst_hpd_irq_send_new_requestif the'handled'is set after calling this function. the whole point is to try to kick off a new request in the queue if the previous message transaction is completed π§ not me reminding you twice, but like, do it π
See also: drm_dp_mst_hpd_irq_send_new_request β
π SEE ALSO π
Kernel file ./drivers/gpu/drm/display/drm_dp_mst_topology.c β and the whole iconic 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_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)
and that's the whole page bestie, iykyk π¦ this lil icon comes from ./drivers/gpu/drm/display, dated October 2026, and it's filed under drm_dp_mst_...handle_event(9) β mwah, go read the source, ily πβ¨π
π¦ 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