projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
992d38c
)
drm/dp: Wait up all outstanding tx waiters
author
Chris Wilson
<chris@chris-wilson.co.uk>
Sat, 13 May 2017 10:52:01 +0000
(11:52 +0100)
committer
Daniel Vetter
<daniel.vetter@ffwll.ch>
Mon, 15 May 2017 12:04:49 +0000
(14:04 +0200)
As we can have multiple tx in the queue, with individual waiters, make
sure that all are woken when any state changes (so that we are sure the
right owner of the txmsg is woken).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link:
http://patchwork.freedesktop.org/patch/msgid/20170513105201.17658-2-chris@chris-wilson.co.uk
drivers/gpu/drm/drm_dp_mst_topology.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/drm_dp_mst_topology.c
b/drivers/gpu/drm/drm_dp_mst_topology.c
index 3bdd314f02b1eadff94f604b8efdbd4e2abe2cde..222eb1a8549b0182c70a58aca6f530e237814ec1 100644
(file)
--- a/
drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/
drivers/gpu/drm/drm_dp_mst_topology.c
@@
-855,7
+855,7
@@
static void drm_dp_destroy_mst_branch_device(struct kref *kref)
mutex_unlock(&mstb->mgr->qlock);
if (wake_tx)
- wake_up(&mstb->mgr->tx_waitq);
+ wake_up
_all
(&mstb->mgr->tx_waitq);
kref_put(kref, drm_dp_free_mst_branch_device);
}
@@
-1510,7
+1510,7
@@
static void process_single_down_tx_qlock(struct drm_dp_mst_topology_mgr *mgr)
if (txmsg->seqno != -1)
txmsg->dst->tx_slots[txmsg->seqno] = NULL;
txmsg->state = DRM_DP_SIDEBAND_TX_TIMEOUT;
- wake_up(&mgr->tx_waitq);
+ wake_up
_all
(&mgr->tx_waitq);
}
}
@@
-2258,7
+2258,7
@@
static int drm_dp_mst_handle_down_rep(struct drm_dp_mst_topology_mgr *mgr)
mstb->tx_slots[slot] = NULL;
mutex_unlock(&mgr->qlock);
- wake_up(&mgr->tx_waitq);
+ wake_up
_all
(&mgr->tx_waitq);
}
return ret;
}