On Tue, Feb 07, 2017 at 05:16:13PM +0800, Shawn Guo wrote: > From: Shawn Guo > > The vblank is mostly CRTC specific and implemented as part of CRTC > driver. Let's keep the vblank hooks struct drm_driver for legacy > drivers, and add corresponding hooks in struct drm_crtc_funcs. These > hooks take struct drm_crtc pointer as argument, and will be called by > core vblank handling code for DRIVER_MODESET drivers. > > The new hooks get plugged into core by adding wrapper functions for > vblank handling code. The .get_vblank_counter hook is effectively > optional, as we provide drm_vblank_no_hw_counter() as the default > fallback in the wrapper function. > > Signed-off-by: Shawn Guo > --- > drivers/gpu/drm/drm_irq.c | 53 +++++++++++++++++++++++++++++++++++++++++------ > include/drm/drm_crtc.h | 44 +++++++++++++++++++++++++++++++++++++++ > include/drm/drm_drv.h | 9 ++++++++ > 3 files changed, 100 insertions(+), 6 deletions(-) I had been meaning to do this for a long time myself but never got around to it. Great stuff. Acked-by: Thierry Reding