|
|
@@ -145,16 +145,14 @@ static int arc_pgu_crtc_atomic_check(struct drm_crtc *crtc,
|
|
|
static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
|
|
|
struct drm_crtc_state *state)
|
|
|
{
|
|
|
- struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
|
|
|
- unsigned long flags;
|
|
|
-
|
|
|
- if (crtc->state->event) {
|
|
|
- struct drm_pending_vblank_event *event = crtc->state->event;
|
|
|
+ struct drm_pending_vblank_event *event = crtc->state->event;
|
|
|
|
|
|
+ if (event) {
|
|
|
crtc->state->event = NULL;
|
|
|
- event->pipe = drm_crtc_index(crtc);
|
|
|
|
|
|
- WARN_ON(drm_crtc_vblank_get(crtc) != 0);
|
|
|
+ spin_lock_irq(&crtc->dev->event_lock);
|
|
|
+ drm_crtc_send_vblank_event(crtc, event);
|
|
|
+ spin_unlock_irq(&crtc->dev->event_lock);
|
|
|
}
|
|
|
}
|
|
|
|