|
|
@@ -1224,8 +1224,16 @@ nv50_mstm_fini(struct nv50_mstm *mstm)
|
|
|
static void
|
|
|
nv50_mstm_init(struct nv50_mstm *mstm)
|
|
|
{
|
|
|
- if (mstm && mstm->mgr.mst_state)
|
|
|
- drm_dp_mst_topology_mgr_resume(&mstm->mgr);
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ if (!mstm || !mstm->mgr.mst_state)
|
|
|
+ return;
|
|
|
+
|
|
|
+ ret = drm_dp_mst_topology_mgr_resume(&mstm->mgr);
|
|
|
+ if (ret == -1) {
|
|
|
+ drm_dp_mst_topology_mgr_set_mst(&mstm->mgr, false);
|
|
|
+ drm_kms_helper_hotplug_event(mstm->mgr.dev);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void
|