[PATCH v3 00/23] Add vblank hooks to struct drm_crtc_funcs
Sean Paul
seanpaul at chromium.org
Wed Feb 8 15:49:57 UTC 2017
On Tue, Feb 07, 2017 at 05:16:12PM +0800, Shawn Guo wrote:
> From: Shawn Guo <shawn.guo at linaro.org>
>
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Sean Paul, Software Engineer, Google / Chromium OS
More information about the dri-devel
mailing list