diff options
| -rw-r--r-- | drivers/gpu/drm/drm_dp_mst_topology.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 36454a146ae9..3084b3a7aeb3 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c | |||
| @@ -804,8 +804,6 @@ static void drm_dp_destroy_mst_branch_device(struct kref *kref) | |||
| 804 | struct drm_dp_mst_port *port, *tmp; | 804 | struct drm_dp_mst_port *port, *tmp; |
| 805 | bool wake_tx = false; | 805 | bool wake_tx = false; |
| 806 | 806 | ||
| 807 | cancel_work_sync(&mstb->mgr->work); | ||
| 808 | |||
| 809 | /* | 807 | /* |
| 810 | * destroy all ports - don't need lock | 808 | * destroy all ports - don't need lock |
| 811 | * as there are no more references to the mst branch | 809 | * as there are no more references to the mst branch |
| @@ -1993,6 +1991,8 @@ void drm_dp_mst_topology_mgr_suspend(struct drm_dp_mst_topology_mgr *mgr) | |||
| 1993 | drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, | 1991 | drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, |
| 1994 | DP_MST_EN | DP_UPSTREAM_IS_SRC); | 1992 | DP_MST_EN | DP_UPSTREAM_IS_SRC); |
| 1995 | mutex_unlock(&mgr->lock); | 1993 | mutex_unlock(&mgr->lock); |
| 1994 | flush_work(&mgr->work); | ||
| 1995 | flush_work(&mgr->destroy_connector_work); | ||
| 1996 | } | 1996 | } |
| 1997 | EXPORT_SYMBOL(drm_dp_mst_topology_mgr_suspend); | 1997 | EXPORT_SYMBOL(drm_dp_mst_topology_mgr_suspend); |
| 1998 | 1998 | ||
| @@ -2765,6 +2765,7 @@ EXPORT_SYMBOL(drm_dp_mst_topology_mgr_init); | |||
| 2765 | */ | 2765 | */ |
| 2766 | void drm_dp_mst_topology_mgr_destroy(struct drm_dp_mst_topology_mgr *mgr) | 2766 | void drm_dp_mst_topology_mgr_destroy(struct drm_dp_mst_topology_mgr *mgr) |
| 2767 | { | 2767 | { |
| 2768 | flush_work(&mgr->work); | ||
| 2768 | flush_work(&mgr->destroy_connector_work); | 2769 | flush_work(&mgr->destroy_connector_work); |
| 2769 | mutex_lock(&mgr->payload_lock); | 2770 | mutex_lock(&mgr->payload_lock); |
| 2770 | kfree(mgr->payloads); | 2771 | kfree(mgr->payloads); |
