mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-06 13:55:22 +02:00
drm/dp_mst: Add a helper to queue a topology probe
commit dbaeef363e
upstream.
A follow up i915 patch will need to reprobe the MST topology after the
initial probing, add a helper for this.
Cc: Lyude Paul <lyude@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240722165503.2084999-3-imre.deak@intel.com
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
93ccb0fb36
commit
5f57a96e92
|
@ -3685,6 +3685,33 @@ drm_dp_mst_topology_mgr_invalidate_mstb(struct drm_dp_mst_branch *mstb)
|
||||||
drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb);
|
drm_dp_mst_topology_mgr_invalidate_mstb(port->mstb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* drm_dp_mst_topology_queue_probe - Queue a topology probe
|
||||||
|
* @mgr: manager to probe
|
||||||
|
*
|
||||||
|
* Queue a work to probe the MST topology. Driver's should call this only to
|
||||||
|
* sync the topology's HW->SW state after the MST link's parameters have
|
||||||
|
* changed in a way the state could've become out-of-sync. This is the case
|
||||||
|
* for instance when the link rate between the source and first downstream
|
||||||
|
* branch device has switched between UHBR and non-UHBR rates. Except of those
|
||||||
|
* cases - for instance when a sink gets plugged/unplugged to a port - the SW
|
||||||
|
* state will get updated automatically via MST UP message notifications.
|
||||||
|
*/
|
||||||
|
void drm_dp_mst_topology_queue_probe(struct drm_dp_mst_topology_mgr *mgr)
|
||||||
|
{
|
||||||
|
mutex_lock(&mgr->lock);
|
||||||
|
|
||||||
|
if (drm_WARN_ON(mgr->dev, !mgr->mst_state || !mgr->mst_primary))
|
||||||
|
goto out_unlock;
|
||||||
|
|
||||||
|
drm_dp_mst_topology_mgr_invalidate_mstb(mgr->mst_primary);
|
||||||
|
drm_dp_mst_queue_probe_work(mgr);
|
||||||
|
|
||||||
|
out_unlock:
|
||||||
|
mutex_unlock(&mgr->lock);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_dp_mst_topology_queue_probe);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* drm_dp_mst_topology_mgr_suspend() - suspend the MST manager
|
* drm_dp_mst_topology_mgr_suspend() - suspend the MST manager
|
||||||
* @mgr: manager to suspend
|
* @mgr: manager to suspend
|
||||||
|
|
|
@ -859,6 +859,8 @@ int drm_dp_check_act_status(struct drm_dp_mst_topology_mgr *mgr);
|
||||||
void drm_dp_mst_dump_topology(struct seq_file *m,
|
void drm_dp_mst_dump_topology(struct seq_file *m,
|
||||||
struct drm_dp_mst_topology_mgr *mgr);
|
struct drm_dp_mst_topology_mgr *mgr);
|
||||||
|
|
||||||
|
void drm_dp_mst_topology_queue_probe(struct drm_dp_mst_topology_mgr *mgr);
|
||||||
|
|
||||||
void drm_dp_mst_topology_mgr_suspend(struct drm_dp_mst_topology_mgr *mgr);
|
void drm_dp_mst_topology_mgr_suspend(struct drm_dp_mst_topology_mgr *mgr);
|
||||||
int __must_check
|
int __must_check
|
||||||
drm_dp_mst_topology_mgr_resume(struct drm_dp_mst_topology_mgr *mgr,
|
drm_dp_mst_topology_mgr_resume(struct drm_dp_mst_topology_mgr *mgr,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user