drm/rockchip: vop: wait for completion with timeout
authorMark Yao <mark.yao@rock-chips.com>
Thu, 12 Jan 2017 01:33:49 +0000 (09:33 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Thu, 12 Jan 2017 06:21:45 +0000 (14:21 +0800)
Wait for completion forever is very dangerous, make system
die is very bad.

Change-Id: Ib447b9bbf3564b5107b33edec331d4925241fc45
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index f75e02570e4eee6fdfef795624371ca96e6726f3..959417b9c8ce6482fd570fe3f2724380d9f12d1a 100644 (file)
@@ -862,7 +862,8 @@ static void vop_crtc_disable(struct drm_crtc *crtc)
 
        spin_unlock(&vop->reg_lock);
 
-       wait_for_completion(&vop->dsp_hold_completion);
+       WARN_ON(!wait_for_completion_timeout(&vop->dsp_hold_completion,
+                                            msecs_to_jiffies(50)));
 
        vop_dsp_hold_valid_irq_disable(vop);
 
@@ -1463,7 +1464,8 @@ static void vop_crtc_enable(struct drm_crtc *crtc)
 
                spin_unlock(&vop->reg_lock);
 
-               wait_for_completion(&vop->dsp_hold_completion);
+               WARN_ON(!wait_for_completion_timeout(&vop->dsp_hold_completion,
+                                                    msecs_to_jiffies(50)));
 
                vop_dsp_hold_valid_irq_disable(vop);
        }