drm/armada: redo locking and atomics for armada_drm_crtc_complete_frame_work()
authorRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 15 Jul 2015 17:09:38 +0000 (18:09 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 15 Sep 2015 15:26:50 +0000 (16:26 +0100)
commit709ffd82fc6ff760dc3a7f71bdf26d78a8e3caf0
treea728a5823f6e33e0897d38b6e426f28149e27220
parente0ac5e9b4b14ab4be7fbba48d666fc619342fd88
drm/armada: redo locking and atomics for armada_drm_crtc_complete_frame_work()

We can do better with armada_drm_crtc_complete_frame_work() - we can
avoid taking the event lock unless a call to drm_send_vblank_event()
is required, and using cmpxchg() and xchg(), we can eliminate the
locking around dcrtc->frame_work entirely.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/armada/armada_crtc.c