]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - drivers/gpu/drm/drm_dp_mst_topology.c
drm/dp-mst: Remove tx_down_in_progress
[mirror_ubuntu-zesty-kernel.git] / drivers / gpu / drm / drm_dp_mst_topology.c
index 6537908050d71b8e3efe2d5e6c60b5417957f0bf..5020a2aaffeb733bdc76b4fd75b808babc6ce91c 100644 (file)
@@ -1493,11 +1493,8 @@ static void process_single_down_tx_qlock(struct drm_dp_mst_topology_mgr *mgr)
        WARN_ON(!mutex_is_locked(&mgr->qlock));
 
        /* construct a chunk from the first msg in the tx_msg queue */
-       if (list_empty(&mgr->tx_msg_downq)) {
-               mgr->tx_down_in_progress = false;
+       if (list_empty(&mgr->tx_msg_downq))
                return;
-       }
-       mgr->tx_down_in_progress = true;
 
        txmsg = list_first_entry(&mgr->tx_msg_downq, struct drm_dp_sideband_msg_tx, next);
        ret = process_single_tx_qlock(mgr, txmsg, false);
@@ -1512,10 +1509,6 @@ static void process_single_down_tx_qlock(struct drm_dp_mst_topology_mgr *mgr)
                txmsg->state = DRM_DP_SIDEBAND_TX_TIMEOUT;
                wake_up(&mgr->tx_waitq);
        }
-       if (list_empty(&mgr->tx_msg_downq)) {
-               mgr->tx_down_in_progress = false;
-               return;
-       }
 }
 
 /* called holding qlock */
@@ -1538,7 +1531,7 @@ static void drm_dp_queue_down_tx(struct drm_dp_mst_topology_mgr *mgr,
 {
        mutex_lock(&mgr->qlock);
        list_add_tail(&txmsg->next, &mgr->tx_msg_downq);
-       if (!mgr->tx_down_in_progress)
+       if (list_is_singular(&mgr->tx_msg_downq))
                process_single_down_tx_qlock(mgr);
        mutex_unlock(&mgr->qlock);
 }
@@ -2887,7 +2880,7 @@ static void drm_dp_tx_work(struct work_struct *work)
        struct drm_dp_mst_topology_mgr *mgr = container_of(work, struct drm_dp_mst_topology_mgr, tx_work);
 
        mutex_lock(&mgr->qlock);
-       if (mgr->tx_down_in_progress)
+       if (!list_empty(&mgr->tx_msg_downq))
                process_single_down_tx_qlock(mgr);
        mutex_unlock(&mgr->qlock);
 }