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>
This commit is contained in:
parent
c4533665d8
commit
7cf23eaf0d
2 changed files with 1 additions and 11 deletions
|
@ -35,11 +35,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
|
||||||
{
|
{
|
||||||
struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
|
struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
|
||||||
|
|
||||||
/* wait for the completion of page flip. */
|
|
||||||
if (!wait_event_timeout(exynos_crtc->pending_flip_queue,
|
|
||||||
(exynos_crtc->event == NULL), HZ/20))
|
|
||||||
exynos_crtc->event = NULL;
|
|
||||||
|
|
||||||
drm_crtc_vblank_off(crtc);
|
drm_crtc_vblank_off(crtc);
|
||||||
|
|
||||||
if (exynos_crtc->ops->disable)
|
if (exynos_crtc->ops->disable)
|
||||||
|
@ -146,8 +141,6 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
|
||||||
if (!exynos_crtc)
|
if (!exynos_crtc)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
init_waitqueue_head(&exynos_crtc->pending_flip_queue);
|
|
||||||
|
|
||||||
exynos_crtc->pipe = pipe;
|
exynos_crtc->pipe = pipe;
|
||||||
exynos_crtc->type = type;
|
exynos_crtc->type = type;
|
||||||
exynos_crtc->ops = ops;
|
exynos_crtc->ops = ops;
|
||||||
|
@ -215,10 +208,8 @@ void exynos_drm_crtc_finish_update(struct exynos_drm_crtc *exynos_crtc,
|
||||||
wake_up(&exynos_crtc->wait_update);
|
wake_up(&exynos_crtc->wait_update);
|
||||||
|
|
||||||
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
spin_lock_irqsave(&crtc->dev->event_lock, flags);
|
||||||
if (exynos_crtc->event) {
|
if (exynos_crtc->event)
|
||||||
drm_crtc_send_vblank_event(crtc, exynos_crtc->event);
|
drm_crtc_send_vblank_event(crtc, exynos_crtc->event);
|
||||||
wake_up(&exynos_crtc->pending_flip_queue);
|
|
||||||
}
|
|
||||||
|
|
||||||
exynos_crtc->event = NULL;
|
exynos_crtc->event = NULL;
|
||||||
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
|
||||||
|
|
|
@ -145,7 +145,6 @@ struct exynos_drm_crtc {
|
||||||
struct drm_crtc base;
|
struct drm_crtc base;
|
||||||
enum exynos_drm_output_type type;
|
enum exynos_drm_output_type type;
|
||||||
unsigned int pipe;
|
unsigned int pipe;
|
||||||
wait_queue_head_t pending_flip_queue;
|
|
||||||
struct drm_pending_vblank_event *event;
|
struct drm_pending_vblank_event *event;
|
||||||
wait_queue_head_t wait_update;
|
wait_queue_head_t wait_update;
|
||||||
atomic_t pending_update;
|
atomic_t pending_update;
|
||||||
|
|
Loading…
Reference in a new issue