drm: Reorganize drm_pending_event to support future event types [v2]
authorKeith Packard <keithp@keithp.com>
Wed, 5 Jul 2017 21:34:23 +0000 (14:34 -0700)
committerDave Airlie <airlied@redhat.com>
Fri, 20 Oct 2017 21:23:40 +0000 (07:23 +1000)
commitbd386e51805632abed4a0873a84af35f0c6461e3
tree5c31397e1799da9a3ef5af1eeb562e47a212a23f
parent570e86963a511c1b404e81c72d2c42169faf9324
drm: Reorganize drm_pending_event to support future event types [v2]

Place drm_event_vblank in a new union that includes that and a bare
drm_event structure. This will allow new members of that union to be
added in the future without changing code related to the existing vbl
event type.

Assignments to the crtc_id field are now done when the event is
allocated, rather than when delievered. This way, delivery doesn't
need to have the crtc ID available.

v2:
 * Remove 'dev' argument from create_vblank_event

It wasn't being used anyways, and if we need it in the future,
we can always get it from crtc->dev.

 * Check for MODESETTING before looking for crtc in queue_vblank_event

UMS drivers will oops if we try to get a crtc, so make sure
we're modesetting before we try to find a crtc_id to fill into
the event.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from commit dc695b85fde88eca3ef3b03fcd82f15b6bc6e462)
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_plane.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
include/drm/drm_vblank.h