]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/dp: extract drm_dp_dpcd_clear_payload()
authorJani Nikula <jani.nikula@intel.com>
Tue, 3 Dec 2024 15:17:10 +0000 (17:17 +0200)
committerJani Nikula <jani.nikula@intel.com>
Tue, 3 Dec 2024 19:35:58 +0000 (21:35 +0200)
SST with 128b/132b channel coding needs this too. Extract to a separate
helper, independent of MST.

Cc: Lyude Paul <lyude@redhat.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/904fa73ea9ea976185062eeb493a08ffc43ed27e.1733238941.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/display/drm_dp_helper.c
drivers/gpu/drm/display/drm_dp_mst_topology.c
include/drm/display/drm_dp_helper.h

index 55eca899ce189773fc9980c3f16769815e0bb24e..da3c8521a7fa7d3c9761377363cdd4b44ab1106e 100644 (file)
@@ -849,6 +849,20 @@ fail:
 }
 EXPORT_SYMBOL(drm_dp_dpcd_write_payload);
 
+/**
+ * drm_dp_dpcd_clear_payload() - Clear the entire VC Payload ID table
+ * @aux: DisplayPort AUX channel
+ *
+ * Clear the entire VC Payload ID table.
+ *
+ * Returns: 0 on success, negative error code on errors.
+ */
+int drm_dp_dpcd_clear_payload(struct drm_dp_aux *aux)
+{
+       return drm_dp_dpcd_write_payload(aux, 0, 0, 0x3f);
+}
+EXPORT_SYMBOL(drm_dp_dpcd_clear_payload);
+
 /**
  * drm_dp_dpcd_poll_act_handled() - Poll for ACT handled status
  * @aux: DisplayPort AUX channel
index a426d13a7a36fc6b331eb65e72f7e0d1c7bedf16..307ce0981e2cb63306742ed61dc5bfea637456fc 100644 (file)
@@ -3679,7 +3679,7 @@ int drm_dp_mst_topology_mgr_set_mst(struct drm_dp_mst_topology_mgr *mgr, bool ms
                        goto out_unlock;
 
                /* Write reset payload */
-               drm_dp_dpcd_write_payload(mgr->aux, 0, 0, 0x3f);
+               drm_dp_dpcd_clear_payload(mgr->aux);
 
                drm_dp_mst_queue_probe_work(mgr);
 
index 69793815aa8215e11fe96f17573936555bee9329..8f4054a560396a43750570a8c2e95624039ab8ad 100644 (file)
@@ -569,6 +569,7 @@ int drm_dp_dpcd_read_phy_link_status(struct drm_dp_aux *aux,
 
 int drm_dp_dpcd_write_payload(struct drm_dp_aux *aux,
                              int vcpid, u8 start_time_slot, u8 time_slot_count);
+int drm_dp_dpcd_clear_payload(struct drm_dp_aux *aux);
 int drm_dp_dpcd_poll_act_handled(struct drm_dp_aux *aux, int timeout_ms);
 
 bool drm_dp_send_real_edid_checksum(struct drm_dp_aux *aux,