diff options
author | Gustavo Padovan <gustavo.padovan@collabora.co.uk> | 2015-08-15 12:26:19 -0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2015-08-30 11:27:38 -0400 |
commit | 7cf23eaf0d8e6f34f3bc89141efc96b2502b290c (patch) | |
tree | 9a4f3fb2fa74db85f3f59e33020446521f3ef2db | |
parent | c4533665d819271dad890440b887776ac3d5f265 (diff) |
drm/exynos: remove wait queue for pending page flip
Exynos atomic commit procedures already does this job of waiting for
pending updates to finish, that means using pending_flip_queue is
pointless now because the disable CRTC procedure will never happen
during a page_flip.
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_crtc.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 |
2 files changed, 1 insertions, 11 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c index d6c2c3f8bc6e..0872aa2f450f 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c | |||
@@ -35,11 +35,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc) | |||
35 | { | 35 | { |
36 | struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); | 36 | struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); |
37 | 37 | ||
38 | /* wait for the completion of page flip. */ | ||
39 | if (!wait_event_timeout(exynos_crtc->pending_flip_queue, | ||
40 | (exynos_crtc->event == NULL), HZ/20)) | ||
41 | exynos_crtc->event = NULL; | ||
42 | |||
43 | drm_crtc_vblank_off(crtc); | 38 | drm_crtc_vblank_off(crtc); |
44 | 39 | ||
45 | if (exynos_crtc->ops->disable) | 40 | if (exynos_crtc->ops->disable) |
@@ -146,8 +141,6 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, | |||
146 | if (!exynos_crtc) | 141 | if (!exynos_crtc) |
147 | return ERR_PTR(-ENOMEM); | 142 | return ERR_PTR(-ENOMEM); |
148 | 143 | ||
149 | init_waitqueue_head(&exynos_crtc->pending_flip_queue); | ||
150 | |||
151 | exynos_crtc->pipe = pipe; | 144 | exynos_crtc->pipe = pipe; |
152 | exynos_crtc->type = type; | 145 | exynos_crtc->type = type; |
153 | exynos_crtc->ops = ops; | 146 | exynos_crtc->ops = ops; |
@@ -215,10 +208,8 @@ void exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc, | |||
215 | wake_up(&exynos_crtc->wait_update); | 208 | wake_up(&exynos_crtc->wait_update); |
216 | 209 | ||
217 | spin_lock_irqsave(&crtc->dev->event_lock, flags); | 210 | spin_lock_irqsave(&crtc->dev->event_lock, flags); |
218 | if (exynos_crtc->event) { | 211 | if (exynos_crtc->event) |
219 | drm_crtc_send_vblank_event(crtc, exynos_crtc->event); | 212 | drm_crtc_send_vblank_event(crtc, exynos_crtc->event); |
220 | wake_up(&exynos_crtc->pending_flip_queue); | ||
221 | } | ||
222 | 213 | ||
223 | exynos_crtc->event = NULL; | 214 | exynos_crtc->event = NULL; |
224 | spin_unlock_irqrestore(&crtc->dev->event_lock, flags); | 215 | spin_unlock_irqrestore(&crtc->dev->event_lock, flags); |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h index 7193d94fde3b..b7ba21dfb696 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h | |||
@@ -145,7 +145,6 @@ struct exynos_drm_crtc { | |||
145 | struct drm_crtc base; | 145 | struct drm_crtc base; |
146 | enum exynos_drm_output_type type; | 146 | enum exynos_drm_output_type type; |
147 | unsigned int pipe; | 147 | unsigned int pipe; |
148 | wait_queue_head_t pending_flip_queue; | ||
149 | struct drm_pending_vblank_event *event; | 148 | struct drm_pending_vblank_event *event; |
150 | wait_queue_head_t wait_update; | 149 | wait_queue_head_t wait_update; |
151 | atomic_t pending_update; | 150 | atomic_t pending_update; |