On Tue, Feb 07, 2017 at 05:16:12PM +0800, Shawn Guo wrote: > From: Shawn Guo <shawn.guo@xxxxxxxxxx> > > The vblank is mostly CRTC specific and implemented as part of CRTC > driver. The first patch adds 3 vblank core<->driver hooks into struct > drm_crtc_funcs, and plug them into core by adding wrapper functions for > vblank handling code. We effectively make the .get_vblank_counter hook > optional by providing drm_vblank_no_hw_counter() as the default fallback > in the wrapper function. > > Patch #2 and #3 unexport function drm_vblank_no_hw_counter() by cleaning > up its use, since it's already the default implememention for > .get_vblank_counter hook anyway. > > The rest of the series is trying to do a massive conversion to the new > hooks for DRIVER_MODESET drivers. But it only handles low-hanging > fruit, and leaves out the ones that need a bit surgery, like gma500, > i915, msm etc. Most of conversion get done by simply moving code and > making functions static, but imx and rockchip are great examples showing > how driver code can be cleaned up with these new hooks. > Hi Shawn, Thanks for the cleanup, it looks great! Let's soak this on the list until next week, if there are no objections from driver maintainers, I'll merge it to -misc. Sean > The series is generated against branch drm-next. > > Changes for v3: > - Let drm_vblank_no_hw_counter() be the last fallback for > .get_vblank_counter() hook. > - Improve the kernel-doc for .get_vblank_counter() hook. > - Convert more DRIVER_MODESET drivers to new hooks. > > Changes for v2: > - Wrap around core vblank handling code to save > drm_crtc_enable[disable]_vblank() helpers > - Add .get_vblank_counter to struct drm_crtc_funcs > - Add some comments to link between two sets of hooks > - Add one hdlcd driver patch for example > > Shawn Guo (23): > drm: add vblank hooks to struct drm_crtc_funcs > drm: remove drm_vblank_no_hw_counter assignment from driver code > drm: unexport function drm_vblank_no_hw_counter() > drm: hdlcd: use vblank hooks in struct drm_crtc_funcs > drm: malidp: use vblank hooks in struct drm_crtc_funcs > drm: armada: use vblank hooks in struct drm_crtc_funcs > drm: atmel: use vblank hooks in struct drm_crtc_funcs > drm: exynos: use vblank hooks in struct drm_crtc_funcs > drm: fsl-dcu: use vblank hooks in struct drm_crtc_funcs > drm: hibmc: use vblank hooks in struct drm_crtc_funcs > drm: kirin: use vblank hooks in struct drm_crtc_funcs > drm: imx: remove struct imx_drm_crtc and imx_drm_crtc_helper_funcs > drm: mediatek: use vblank hooks in struct drm_crtc_funcs > drm: meson: use vblank hooks in struct drm_crtc_funcs > drm: qxl: use vblank hooks in struct drm_crtc_funcs > drm: rcar-du: use vblank hooks in struct drm_crtc_funcs > drm: rockchip: remove struct rockchip_crtc_funcs > drm: shmobile: use vblank hooks in struct drm_crtc_funcs > drm: sun4i: use vblank hooks in struct drm_crtc_funcs > drm: tegra: use vblank hooks in struct drm_crtc_funcs > drm: tilcdc: use vblank hooks in struct drm_crtc_funcs > drm: vc4: use vblank hooks in struct drm_crtc_funcs > drm: zte: use vblank hooks in struct drm_crtc_funcs > > drivers/gpu/drm/arc/arcpgu_drv.c | 1 - > drivers/gpu/drm/arm/hdlcd_crtc.c | 20 +++++ > drivers/gpu/drm/arm/hdlcd_drv.c | 21 ----- > drivers/gpu/drm/arm/malidp_crtc.c | 21 +++++ > drivers/gpu/drm/arm/malidp_drv.c | 22 ----- > drivers/gpu/drm/armada/armada_crtc.c | 56 ++++++++----- > drivers/gpu/drm/armada/armada_crtc.h | 2 - > drivers/gpu/drm/armada/armada_drv.c | 17 ---- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 21 +++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 22 ----- > drivers/gpu/drm/drm_irq.c | 81 +++++++++++++------ > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 40 +++++----- > drivers/gpu/drm/exynos/exynos_drm_crtc.h | 2 - > drivers/gpu/drm/exynos/exynos_drm_drv.c | 4 - > drivers/gpu/drm/exynos/exynos_drm_drv.h | 8 -- > drivers/gpu/drm/exynos/exynos_hdmi.c | 7 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 26 ++++++ > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 26 ------ > drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 20 +++++ > drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 23 ------ > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 11 +-- > drivers/gpu/drm/i915/i915_irq.c | 1 - > drivers/gpu/drm/imx/imx-drm-core.c | 102 ------------------------ > drivers/gpu/drm/imx/imx-drm.h | 13 --- > drivers/gpu/drm/imx/ipuv3-crtc.c | 58 +++++--------- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 8 +- > drivers/gpu/drm/mediatek/mtk_drm_crtc.h | 2 - > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 - > drivers/gpu/drm/meson/meson_crtc.c | 22 +++++ > drivers/gpu/drm/meson/meson_drv.c | 21 ----- > drivers/gpu/drm/msm/msm_drv.c | 1 - > drivers/gpu/drm/mxsfb/mxsfb_drv.c | 1 - > drivers/gpu/drm/nouveau/nouveau_drm.c | 1 - > drivers/gpu/drm/omapdrm/omap_drv.c | 1 - > drivers/gpu/drm/qxl/qxl_display.c | 16 ++++ > drivers/gpu/drm/qxl/qxl_drv.c | 18 ----- > drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 29 ++++--- > drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 1 - > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 20 ----- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 52 ------------ > drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 14 ---- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 9 +-- > drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 51 ++++++++---- > drivers/gpu/drm/shmobile/shmob_drm_crtc.h | 1 - > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 20 ----- > drivers/gpu/drm/sti/sti_drv.c | 1 - > drivers/gpu/drm/sun4i/sun4i_crtc.c | 24 ++++++ > drivers/gpu/drm/sun4i/sun4i_drv.c | 28 ------- > drivers/gpu/drm/tegra/dc.c | 15 +++- > drivers/gpu/drm/tegra/drm.c | 38 --------- > drivers/gpu/drm/tegra/drm.h | 3 - > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 11 +++ > drivers/gpu/drm/tilcdc/tilcdc_drv.c | 13 --- > drivers/gpu/drm/vc4/vc4_crtc.c | 8 +- > drivers/gpu/drm/vc4/vc4_drv.c | 3 - > drivers/gpu/drm/vc4/vc4_drv.h | 2 - > drivers/gpu/drm/zte/zx_drm_drv.c | 3 - > drivers/gpu/drm/zte/zx_vou.c | 61 ++++++-------- > drivers/gpu/drm/zte/zx_vou.h | 3 - > include/drm/drm_crtc.h | 44 ++++++++++ > include/drm/drm_drv.h | 16 +++- > include/drm/drm_irq.h | 1 - > 62 files changed, 481 insertions(+), 710 deletions(-) > > -- > 1.9.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel