[v3,02/23] drm: remove drm_vblank_no_hw_counter assignment from driver code

Message ID 1486458995-31018-3-git-send-email-shawnguo@kernel.org
State New
Headers show
Series
  • Add vblank hooks to struct drm_crtc_funcs
Related show

Commit Message

Shawn Guo Feb. 7, 2017, 9:16 a.m.
From: Shawn Guo <shawn.guo@linaro.org>

Core code already makes drm_driver.get_vblank_counter hook optional by
letting drm_vblank_no_hw_counter be the default implementation for the
function hook.  So the drm_vblank_no_hw_counter assignment in the driver
code becomes redundant and can be removed now.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Mali DP Maintainers <malidp@foss.arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Stefan Agner <stefan@agner.ch>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: CK Hu <ck.hu@mediatek.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Mark Yao <mark.yao@rock-chips.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Eric Anholt <eric@anholt.net>
---
 drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -
 drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -
 drivers/gpu/drm/arm/malidp_drv.c                | 1 -
 drivers/gpu/drm/armada/armada_drv.c             | 1 -
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -
 drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -
 drivers/gpu/drm/i915/i915_irq.c                 | 1 -
 drivers/gpu/drm/imx/imx-drm-core.c              | 1 -
 drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -
 drivers/gpu/drm/meson/meson_drv.c               | 1 -
 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/rcar-du/rcar_du_drv.c           | 1 -
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -
 drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -
 drivers/gpu/drm/sti/sti_drv.c                   | 1 -
 drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -
 drivers/gpu/drm/tilcdc/tilcdc_drv.c             | 1 -
 drivers/gpu/drm/vc4/vc4_drv.c                   | 1 -
 drivers/gpu/drm/zte/zx_drm_drv.c                | 1 -
 25 files changed, 25 deletions(-)

Comments

Maxime Ripard Feb. 7, 2017, 9:27 a.m. | #1
On Tue, Feb 07, 2017 at 05:16:14PM +0800, Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>

> 

> Core code already makes drm_driver.get_vblank_counter hook optional by

> letting drm_vblank_no_hw_counter be the default implementation for the

> function hook.  So the drm_vblank_no_hw_counter assignment in the driver

> code becomes redundant and can be removed now.

> 

> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

> Cc: Alexey Brodkin <abrodkin@synopsys.com>

> Cc: Liviu Dudau <liviu.dudau@arm.com>

> Cc: Mali DP Maintainers <malidp@foss.arm.com>

> Cc: Russell King <linux@armlinux.org.uk>

> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>

> Cc: Inki Dae <inki.dae@samsung.com>

> Cc: Stefan Agner <stefan@agner.ch>

> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>

> Cc: Daniel Vetter <daniel.vetter@intel.com>

> Cc: Philipp Zabel <p.zabel@pengutronix.de>

> Cc: CK Hu <ck.hu@mediatek.com>

> Cc: Neil Armstrong <narmstrong@baylibre.com>

> Cc: Rob Clark <robdclark@gmail.com>

> Cc: Marek Vasut <marex@denx.de>

> Cc: Ben Skeggs <bskeggs@redhat.com>

> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>

> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Cc: Mark Yao <mark.yao@rock-chips.com>

> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>

> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>

> Cc: Jyri Sarha <jsarha@ti.com>

> Cc: Eric Anholt <eric@anholt.net>

> ---

>  drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -

>  drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -

>  drivers/gpu/drm/arm/malidp_drv.c                | 1 -

>  drivers/gpu/drm/armada/armada_drv.c             | 1 -

>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -

>  drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -

>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -

>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -

>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -

>  drivers/gpu/drm/i915/i915_irq.c                 | 1 -

>  drivers/gpu/drm/imx/imx-drm-core.c              | 1 -

>  drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -

>  drivers/gpu/drm/meson/meson_drv.c               | 1 -

>  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/rcar-du/rcar_du_drv.c           | 1 -

>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -

>  drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -

>  drivers/gpu/drm/sti/sti_drv.c                   | 1 -

>  drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -


For sun4i,

Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>


Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Boris Brezillon Feb. 7, 2017, 9:46 a.m. | #2
On Tue,  7 Feb 2017 17:16:14 +0800
Shawn Guo <shawnguo@kernel.org> wrote:

> From: Shawn Guo <shawn.guo@linaro.org>
> 
> Core code already makes drm_driver.get_vblank_counter hook optional by
> letting drm_vblank_no_hw_counter be the default implementation for the
> function hook.  So the drm_vblank_no_hw_counter assignment in the driver
> code becomes redundant and can be removed now.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>

Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>

> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> ---
>  drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -
>  drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -
>  drivers/gpu/drm/arm/malidp_drv.c                | 1 -
>  drivers/gpu/drm/armada/armada_drv.c             | 1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -
>  drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -
>  drivers/gpu/drm/i915/i915_irq.c                 | 1 -
>  drivers/gpu/drm/imx/imx-drm-core.c              | 1 -
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -
>  drivers/gpu/drm/meson/meson_drv.c               | 1 -
>  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/rcar-du/rcar_du_drv.c           | 1 -
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -
>  drivers/gpu/drm/sti/sti_drv.c                   | 1 -
>  drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c             | 1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                   | 1 -
>  drivers/gpu/drm/zte/zx_drm_drv.c                | 1 -
>  25 files changed, 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
> index 8d8344ed655e..1926b200e4cb 100644
> --- a/drivers/gpu/drm/arc/arcpgu_drv.c
> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c
> @@ -175,7 +175,6 @@ static int arcpgu_unload(struct drm_device *drm)
>  	.dumb_create = drm_gem_cma_dumb_create,
>  	.dumb_map_offset = drm_gem_cma_dumb_map_offset,
>  	.dumb_destroy = drm_gem_dumb_destroy,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
>  	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 4ce4f970920b..5d79e87f7421 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -278,7 +278,6 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
>  	.irq_preinstall = hdlcd_irq_preinstall,
>  	.irq_postinstall = hdlcd_irq_postinstall,
>  	.irq_uninstall = hdlcd_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = hdlcd_enable_vblank,
>  	.disable_vblank = hdlcd_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 8b0672d4aee9..ca6ccd172de3 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -213,7 +213,6 @@ static void malidp_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
>  			   DRIVER_PRIME,
>  	.lastclose = malidp_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = malidp_enable_vblank,
>  	.disable_vblank = malidp_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index 63f42d001f33..bb27892012de 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -87,7 +87,6 @@ static void armada_drm_lastclose(struct drm_device *dev)
>  
>  static struct drm_driver armada_drm_driver = {
>  	.lastclose		= armada_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= armada_drm_enable_vblank,
>  	.disable_vblank		= armada_drm_disable_vblank,
>  	.gem_free_object_unlocked = armada_gem_free_object,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> index 427bdff425c2..5cba65b5ea16 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> @@ -760,7 +760,6 @@ static void atmel_hlcdc_dc_disable_vblank(struct drm_device *dev,
>  	.irq_preinstall = atmel_hlcdc_dc_irq_uninstall,
>  	.irq_postinstall = atmel_hlcdc_dc_irq_postinstall,
>  	.irq_uninstall = atmel_hlcdc_dc_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = atmel_hlcdc_dc_enable_vblank,
>  	.disable_vblank = atmel_hlcdc_dc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 035d02ecffcd..a1c22eb12f4b 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -263,7 +263,6 @@ static void exynos_drm_lastclose(struct drm_device *dev)
>  	.preclose		= exynos_drm_preclose,
>  	.lastclose		= exynos_drm_lastclose,
>  	.postclose		= exynos_drm_postclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= exynos_drm_crtc_enable_vblank,
>  	.disable_vblank		= exynos_drm_crtc_disable_vblank,
>  	.gem_free_object_unlocked = exynos_drm_gem_free_object,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> index 04173235f448..b59b816a1d7d 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -203,7 +203,6 @@ static void fsl_dcu_drm_lastclose(struct drm_device *dev)
>  	.load			= fsl_dcu_load,
>  	.unload			= fsl_dcu_unload,
>  	.irq_handler		= fsl_dcu_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= fsl_dcu_drm_enable_vblank,
>  	.disable_vblank		= fsl_dcu_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7e2043f4348c..8cac70454b57 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -84,7 +84,6 @@ irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
>  	.desc			= "hibmc drm driver",
>  	.major			= 1,
>  	.minor			= 0,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= hibmc_enable_vblank,
>  	.disable_vblank		= hibmc_disable_vblank,
>  	.gem_free_object_unlocked = hibmc_gem_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 9a0678a33e0d..0624fab8046f 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -1025,7 +1025,6 @@ static int ade_drm_init(struct platform_device *pdev)
>  			       IRQF_SHARED, dev->driver->name, acrtc);
>  	if (ret)
>  		return ret;
> -	dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	dev->driver->enable_vblank = ade_enable_vblank;
>  	dev->driver->disable_vblank = ade_disable_vblank;
>  
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 47d6131e977f..5aab08172faf 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -4218,7 +4218,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
>  	if (IS_GEN2(dev_priv)) {
>  		/* Gen2 doesn't have a hardware frame counter */
>  		dev->max_vblank_count = 0;
> -		dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	} else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
>  		dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
>  		dev->driver->get_vblank_counter = g4x_get_vblank_counter;
> diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
> index 5ae48836652e..4badbb66d69e 100644
> --- a/drivers/gpu/drm/imx/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/imx-drm-core.c
> @@ -288,7 +288,6 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
>  	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
>  	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
>  	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= imx_drm_enable_vblank,
>  	.disable_vblank		= imx_drm_disable_vblank,
>  	.ioctls			= imx_drm_ioctls,
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index b5f88e6d078e..ef8675336465 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -256,7 +256,6 @@ static void mtk_drm_kms_deinit(struct drm_device *drm)
>  	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = mtk_drm_crtc_enable_vblank,
>  	.disable_vblank = mtk_drm_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
> index 6f2fd82ed483..c0a59889c45f 100644
> --- a/drivers/gpu/drm/meson/meson_drv.c
> +++ b/drivers/gpu/drm/meson/meson_drv.c
> @@ -129,7 +129,6 @@ static irqreturn_t meson_irq(int irq, void *arg)
>  	/* Vblank */
>  	.enable_vblank		= meson_enable_vblank,
>  	.disable_vblank		= meson_disable_vblank,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  
>  	/* IRQ */
>  	.irq_handler		= meson_irq,
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 70226eaa5cac..cb47f4a14215 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -816,7 +816,6 @@ static int msm_ioctl_gem_madvise(struct drm_device *dev, void *data,
>  	.irq_preinstall     = msm_irq_preinstall,
>  	.irq_postinstall    = msm_irq_postinstall,
>  	.irq_uninstall      = msm_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = msm_enable_vblank,
>  	.disable_vblank     = msm_disable_vblank,
>  	.gem_free_object    = msm_gem_free_object,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index cdfbe0284635..104722a78bd6 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -340,7 +340,6 @@ static irqreturn_t mxsfb_irq_handler(int irq, void *data)
>  	.irq_handler		= mxsfb_irq_handler,
>  	.irq_preinstall		= mxsfb_irq_preinstall,
>  	.irq_uninstall		= mxsfb_irq_preinstall,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= mxsfb_enable_vblank,
>  	.disable_vblank		= mxsfb_disable_vblank,
>  	.gem_free_object	= drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 9ed2ca0769e3..626df485a03a 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -977,7 +977,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	.debugfs_cleanup = nouveau_drm_debugfs_cleanup,
>  #endif
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = nouveau_display_vblank_enable,
>  	.disable_vblank = nouveau_display_vblank_disable,
>  	.get_scanout_position = nouveau_display_scanoutpos,
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index afe8f05b927b..da049a7636ad 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -714,7 +714,6 @@ static void dev_lastclose(struct drm_device *dev)
>  		DRIVER_ATOMIC,
>  	.open = dev_open,
>  	.lastclose = dev_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = omap_irq_enable_vblank,
>  	.disable_vblank = omap_irq_disable_vblank,
>  #ifdef CONFIG_DEBUG_FS
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index c05e00872778..094da3ef49d1 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -259,7 +259,6 @@ static void rcar_du_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME
>  				| DRIVER_ATOMIC,
>  	.lastclose		= rcar_du_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rcar_du_enable_vblank,
>  	.disable_vblank		= rcar_du_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index c30d649cb147..39243480c834 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -270,7 +270,6 @@ static void rockchip_drm_lastclose(struct drm_device *dev)
>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM |
>  				  DRIVER_PRIME | DRIVER_ATOMIC,
>  	.lastclose		= rockchip_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rockchip_drm_crtc_enable_vblank,
>  	.disable_vblank		= rockchip_drm_crtc_disable_vblank,
>  	.gem_vm_ops		= &drm_gem_cma_vm_ops,
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> index 33cec3d42389..d6b0545d252d 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -256,7 +256,6 @@ static void shmob_drm_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.load			= shmob_drm_load,
>  	.unload			= shmob_drm_unload,
>  	.irq_handler		= shmob_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= shmob_drm_enable_vblank,
>  	.disable_vblank		= shmob_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 788feed208d7..d4b771d2d10d 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -264,7 +264,6 @@ static void sti_mode_config_init(struct drm_device *dev)
>  	.dumb_destroy = drm_gem_dumb_destroy,
>  	.fops = &sti_driver_fops,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = sti_crtc_enable_vblank,
>  	.disable_vblank = sti_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
> index 4ce665349f6b..0816c635df20 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
> @@ -92,7 +92,6 @@ static void sun4i_drv_disable_vblank(struct drm_device *drm, unsigned int pipe)
>  	/* Frame Buffer Operations */
>  
>  	/* VBlank Operations */
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= sun4i_drv_enable_vblank,
>  	.disable_vblank		= sun4i_drv_disable_vblank,
>  };
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 372d86fbb093..d5bc98e283d9 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -557,7 +557,6 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
>  			       DRIVER_PRIME | DRIVER_ATOMIC),
>  	.lastclose          = tilcdc_lastclose,
>  	.irq_handler        = tilcdc_irq,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = tilcdc_enable_vblank,
>  	.disable_vblank     = tilcdc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
> index a459745e96f7..3a8709d85da1 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.c
> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
> @@ -139,7 +139,6 @@ static void vc4_lastclose(struct drm_device *dev)
>  
>  	.enable_vblank = vc4_enable_vblank,
>  	.disable_vblank = vc4_disable_vblank,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.get_scanout_position = vc4_crtc_get_scanoutpos,
>  	.get_vblank_timestamp = vc4_crtc_get_vblank_timestamp,
>  
> diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
> index 5c6944a1e72c..afd713a954c6 100644
> --- a/drivers/gpu/drm/zte/zx_drm_drv.c
> +++ b/drivers/gpu/drm/zte/zx_drm_drv.c
> @@ -71,7 +71,6 @@ static void zx_drm_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  	.lastclose = zx_drm_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = zx_vou_enable_vblank,
>  	.disable_vblank = zx_vou_disable_vblank,
>  	.gem_free_object = drm_gem_cma_free_object,
Neil Armstrong Feb. 7, 2017, 10:09 a.m. | #3
On 02/07/2017 10:16 AM, Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>
> 
> Core code already makes drm_driver.get_vblank_counter hook optional by
> letting drm_vblank_no_hw_counter be the default implementation for the
> function hook.  So the drm_vblank_no_hw_counter assignment in the driver
> code becomes redundant and can be removed now.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>

For the meson drm driver :

Acked-by: Neil Armstrong <narmstrong@baylibre.com>

> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> ---
>  drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -
>  drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -
>  drivers/gpu/drm/arm/malidp_drv.c                | 1 -
>  drivers/gpu/drm/armada/armada_drv.c             | 1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -
>  drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -
>  drivers/gpu/drm/i915/i915_irq.c                 | 1 -
>  drivers/gpu/drm/imx/imx-drm-core.c              | 1 -
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -
>  drivers/gpu/drm/meson/meson_drv.c               | 1 -
>  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/rcar-du/rcar_du_drv.c           | 1 -
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -
>  drivers/gpu/drm/sti/sti_drv.c                   | 1 -
>  drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c             | 1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                   | 1 -
>  drivers/gpu/drm/zte/zx_drm_drv.c                | 1 -
>  25 files changed, 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
> index 8d8344ed655e..1926b200e4cb 100644
> --- a/drivers/gpu/drm/arc/arcpgu_drv.c
> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c
> @@ -175,7 +175,6 @@ static int arcpgu_unload(struct drm_device *drm)
>  	.dumb_create = drm_gem_cma_dumb_create,
>  	.dumb_map_offset = drm_gem_cma_dumb_map_offset,
>  	.dumb_destroy = drm_gem_dumb_destroy,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
>  	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 4ce4f970920b..5d79e87f7421 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -278,7 +278,6 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
>  	.irq_preinstall = hdlcd_irq_preinstall,
>  	.irq_postinstall = hdlcd_irq_postinstall,
>  	.irq_uninstall = hdlcd_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = hdlcd_enable_vblank,
>  	.disable_vblank = hdlcd_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 8b0672d4aee9..ca6ccd172de3 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -213,7 +213,6 @@ static void malidp_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
>  			   DRIVER_PRIME,
>  	.lastclose = malidp_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = malidp_enable_vblank,
>  	.disable_vblank = malidp_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index 63f42d001f33..bb27892012de 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -87,7 +87,6 @@ static void armada_drm_lastclose(struct drm_device *dev)
>  
>  static struct drm_driver armada_drm_driver = {
>  	.lastclose		= armada_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= armada_drm_enable_vblank,
>  	.disable_vblank		= armada_drm_disable_vblank,
>  	.gem_free_object_unlocked = armada_gem_free_object,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> index 427bdff425c2..5cba65b5ea16 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> @@ -760,7 +760,6 @@ static void atmel_hlcdc_dc_disable_vblank(struct drm_device *dev,
>  	.irq_preinstall = atmel_hlcdc_dc_irq_uninstall,
>  	.irq_postinstall = atmel_hlcdc_dc_irq_postinstall,
>  	.irq_uninstall = atmel_hlcdc_dc_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = atmel_hlcdc_dc_enable_vblank,
>  	.disable_vblank = atmel_hlcdc_dc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 035d02ecffcd..a1c22eb12f4b 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -263,7 +263,6 @@ static void exynos_drm_lastclose(struct drm_device *dev)
>  	.preclose		= exynos_drm_preclose,
>  	.lastclose		= exynos_drm_lastclose,
>  	.postclose		= exynos_drm_postclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= exynos_drm_crtc_enable_vblank,
>  	.disable_vblank		= exynos_drm_crtc_disable_vblank,
>  	.gem_free_object_unlocked = exynos_drm_gem_free_object,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> index 04173235f448..b59b816a1d7d 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -203,7 +203,6 @@ static void fsl_dcu_drm_lastclose(struct drm_device *dev)
>  	.load			= fsl_dcu_load,
>  	.unload			= fsl_dcu_unload,
>  	.irq_handler		= fsl_dcu_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= fsl_dcu_drm_enable_vblank,
>  	.disable_vblank		= fsl_dcu_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7e2043f4348c..8cac70454b57 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -84,7 +84,6 @@ irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
>  	.desc			= "hibmc drm driver",
>  	.major			= 1,
>  	.minor			= 0,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= hibmc_enable_vblank,
>  	.disable_vblank		= hibmc_disable_vblank,
>  	.gem_free_object_unlocked = hibmc_gem_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 9a0678a33e0d..0624fab8046f 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -1025,7 +1025,6 @@ static int ade_drm_init(struct platform_device *pdev)
>  			       IRQF_SHARED, dev->driver->name, acrtc);
>  	if (ret)
>  		return ret;
> -	dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	dev->driver->enable_vblank = ade_enable_vblank;
>  	dev->driver->disable_vblank = ade_disable_vblank;
>  
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 47d6131e977f..5aab08172faf 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -4218,7 +4218,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
>  	if (IS_GEN2(dev_priv)) {
>  		/* Gen2 doesn't have a hardware frame counter */
>  		dev->max_vblank_count = 0;
> -		dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	} else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
>  		dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
>  		dev->driver->get_vblank_counter = g4x_get_vblank_counter;
> diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
> index 5ae48836652e..4badbb66d69e 100644
> --- a/drivers/gpu/drm/imx/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/imx-drm-core.c
> @@ -288,7 +288,6 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
>  	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
>  	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
>  	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= imx_drm_enable_vblank,
>  	.disable_vblank		= imx_drm_disable_vblank,
>  	.ioctls			= imx_drm_ioctls,
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index b5f88e6d078e..ef8675336465 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -256,7 +256,6 @@ static void mtk_drm_kms_deinit(struct drm_device *drm)
>  	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = mtk_drm_crtc_enable_vblank,
>  	.disable_vblank = mtk_drm_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
> index 6f2fd82ed483..c0a59889c45f 100644
> --- a/drivers/gpu/drm/meson/meson_drv.c
> +++ b/drivers/gpu/drm/meson/meson_drv.c
> @@ -129,7 +129,6 @@ static irqreturn_t meson_irq(int irq, void *arg)
>  	/* Vblank */
>  	.enable_vblank		= meson_enable_vblank,
>  	.disable_vblank		= meson_disable_vblank,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  
>  	/* IRQ */
>  	.irq_handler		= meson_irq,
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 70226eaa5cac..cb47f4a14215 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -816,7 +816,6 @@ static int msm_ioctl_gem_madvise(struct drm_device *dev, void *data,
>  	.irq_preinstall     = msm_irq_preinstall,
>  	.irq_postinstall    = msm_irq_postinstall,
>  	.irq_uninstall      = msm_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = msm_enable_vblank,
>  	.disable_vblank     = msm_disable_vblank,
>  	.gem_free_object    = msm_gem_free_object,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index cdfbe0284635..104722a78bd6 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -340,7 +340,6 @@ static irqreturn_t mxsfb_irq_handler(int irq, void *data)
>  	.irq_handler		= mxsfb_irq_handler,
>  	.irq_preinstall		= mxsfb_irq_preinstall,
>  	.irq_uninstall		= mxsfb_irq_preinstall,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= mxsfb_enable_vblank,
>  	.disable_vblank		= mxsfb_disable_vblank,
>  	.gem_free_object	= drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 9ed2ca0769e3..626df485a03a 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -977,7 +977,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	.debugfs_cleanup = nouveau_drm_debugfs_cleanup,
>  #endif
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = nouveau_display_vblank_enable,
>  	.disable_vblank = nouveau_display_vblank_disable,
>  	.get_scanout_position = nouveau_display_scanoutpos,
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index afe8f05b927b..da049a7636ad 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -714,7 +714,6 @@ static void dev_lastclose(struct drm_device *dev)
>  		DRIVER_ATOMIC,
>  	.open = dev_open,
>  	.lastclose = dev_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = omap_irq_enable_vblank,
>  	.disable_vblank = omap_irq_disable_vblank,
>  #ifdef CONFIG_DEBUG_FS
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index c05e00872778..094da3ef49d1 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -259,7 +259,6 @@ static void rcar_du_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME
>  				| DRIVER_ATOMIC,
>  	.lastclose		= rcar_du_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rcar_du_enable_vblank,
>  	.disable_vblank		= rcar_du_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index c30d649cb147..39243480c834 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -270,7 +270,6 @@ static void rockchip_drm_lastclose(struct drm_device *dev)
>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM |
>  				  DRIVER_PRIME | DRIVER_ATOMIC,
>  	.lastclose		= rockchip_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rockchip_drm_crtc_enable_vblank,
>  	.disable_vblank		= rockchip_drm_crtc_disable_vblank,
>  	.gem_vm_ops		= &drm_gem_cma_vm_ops,
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> index 33cec3d42389..d6b0545d252d 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -256,7 +256,6 @@ static void shmob_drm_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.load			= shmob_drm_load,
>  	.unload			= shmob_drm_unload,
>  	.irq_handler		= shmob_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= shmob_drm_enable_vblank,
>  	.disable_vblank		= shmob_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 788feed208d7..d4b771d2d10d 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -264,7 +264,6 @@ static void sti_mode_config_init(struct drm_device *dev)
>  	.dumb_destroy = drm_gem_dumb_destroy,
>  	.fops = &sti_driver_fops,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = sti_crtc_enable_vblank,
>  	.disable_vblank = sti_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
> index 4ce665349f6b..0816c635df20 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
> @@ -92,7 +92,6 @@ static void sun4i_drv_disable_vblank(struct drm_device *drm, unsigned int pipe)
>  	/* Frame Buffer Operations */
>  
>  	/* VBlank Operations */
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= sun4i_drv_enable_vblank,
>  	.disable_vblank		= sun4i_drv_disable_vblank,
>  };
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 372d86fbb093..d5bc98e283d9 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -557,7 +557,6 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
>  			       DRIVER_PRIME | DRIVER_ATOMIC),
>  	.lastclose          = tilcdc_lastclose,
>  	.irq_handler        = tilcdc_irq,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = tilcdc_enable_vblank,
>  	.disable_vblank     = tilcdc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
> index a459745e96f7..3a8709d85da1 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.c
> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
> @@ -139,7 +139,6 @@ static void vc4_lastclose(struct drm_device *dev)
>  
>  	.enable_vblank = vc4_enable_vblank,
>  	.disable_vblank = vc4_disable_vblank,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.get_scanout_position = vc4_crtc_get_scanoutpos,
>  	.get_vblank_timestamp = vc4_crtc_get_vblank_timestamp,
>  
> diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
> index 5c6944a1e72c..afd713a954c6 100644
> --- a/drivers/gpu/drm/zte/zx_drm_drv.c
> +++ b/drivers/gpu/drm/zte/zx_drm_drv.c
> @@ -71,7 +71,6 @@ static void zx_drm_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  	.lastclose = zx_drm_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = zx_vou_enable_vblank,
>  	.disable_vblank = zx_vou_disable_vblank,
>  	.gem_free_object = drm_gem_cma_free_object,
>
Russell King - ARM Linux Feb. 7, 2017, 10:22 a.m. | #4
On Tue, Feb 07, 2017 at 05:16:14PM +0800, Shawn Guo wrote:

For:

>  drivers/gpu/drm/armada/armada_drv.c             | 1 -

Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Laurent Pinchart Feb. 7, 2017, 10:42 a.m. | #5
Hi Shawn,

Thank you for the patch.

On Tuesday 07 Feb 2017 17:16:14 Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>
> 
> Core code already makes drm_driver.get_vblank_counter hook optional by
> letting drm_vblank_no_hw_counter be the default implementation for the
> function hook.  So the drm_vblank_no_hw_counter assignment in the driver
> code becomes redundant and can be removed now.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> ---
>  drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -
>  drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -
>  drivers/gpu/drm/arm/malidp_drv.c                | 1 -
>  drivers/gpu/drm/armada/armada_drv.c             | 1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -
>  drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -
>  drivers/gpu/drm/i915/i915_irq.c                 | 1 -
>  drivers/gpu/drm/imx/imx-drm-core.c              | 1 -
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -
>  drivers/gpu/drm/meson/meson_drv.c               | 1 -
>  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/rcar-du/rcar_du_drv.c           | 1 -
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -
>  drivers/gpu/drm/sti/sti_drv.c                   | 1 -
>  drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c             | 1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                   | 1 -
>  drivers/gpu/drm/zte/zx_drm_drv.c                | 1 -
>  25 files changed, 25 deletions(-)

[snip]

> diff --git a/drivers/gpu/drm/i915/i915_irq.c
> b/drivers/gpu/drm/i915/i915_irq.c index 47d6131e977f..5aab08172faf 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -4218,7 +4218,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
> if (IS_GEN2(dev_priv)) {
>  		/* Gen2 doesn't have a hardware frame counter */
>  		dev->max_vblank_count = 0;
> -		dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	} else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
>  		dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
>  		dev->driver->get_vblank_counter = g4x_get_vblank_counter;

On an unrelated note, for security reasons we should try to make the driver 
structure static, or at least move ops to a static structure.

Anyway, for this patch,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Russell King - ARM Linux Feb. 7, 2017, 10:44 a.m. | #6
On Tue, Feb 07, 2017 at 12:42:15PM +0200, Laurent Pinchart wrote:
> On an unrelated note, for security reasons we should try to make the driver 
> structure static, or at least move ops to a static structure.

ITYM "const" not "static".

"static" doesn't get you anything from a security point of view.  "const"
gets you write protection, so code can't modify the function pointers.
Laurent Pinchart Feb. 7, 2017, 10:58 a.m. | #7
Hi Russell,

On Tuesday 07 Feb 2017 10:44:49 Russell King - ARM Linux wrote:
> On Tue, Feb 07, 2017 at 12:42:15PM +0200, Laurent Pinchart wrote:
> > On an unrelated note, for security reasons we should try to make the
> > driver
> > structure static, or at least move ops to a static structure.
> 
> ITYM "const" not "static".
> 
> "static" doesn't get you anything from a security point of view.  "const"
> gets you write protection, so code can't modify the function pointers.

That's what I meant, sorry. My brain-fingers link seems to be have a high 
noise level this week.
Thierry Reding Feb. 7, 2017, 11:01 a.m. | #8
On Tue, Feb 07, 2017 at 10:44:49AM +0000, Russell King - ARM Linux wrote:
> On Tue, Feb 07, 2017 at 12:42:15PM +0200, Laurent Pinchart wrote:

> > On an unrelated note, for security reasons we should try to make the driver 

> > structure static, or at least move ops to a static structure.

> 

> ITYM "const" not "static".

> 

> "static" doesn't get you anything from a security point of view.  "const"

> gets you write protection, so code can't modify the function pointers.


We can't easily do that for struct drm_driver at the moment because some
fields end up being modified at runtime. I suppose we could move some of
those fields over to struct drm_device, which, in many cases, would make
more sense anyway.

What i915 is currently doing is probably fine for all existing cases,
but it sets a bad example for other drivers that may end up having to
drive multiple devices with one driver, so modifying the global driver
is likely going to break things.

Thierry
Alexey Brodkin Feb. 7, 2017, 11:54 a.m. | #9
Hi Shawn,

On Tue, 2017-02-07 at 17:16 +0800, Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>

> 

> Core code already makes drm_driver.get_vblank_counter hook optional by

> letting drm_vblank_no_hw_counter be the default implementation for the

> function hook.  So the drm_vblank_no_hw_counter assignment in the driver

> code becomes redundant and can be removed now.

> 

> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

> Cc: Alexey Brodkin <abrodkin@synopsys.com>


For ARC PGU part

Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
Liviu Dudau Feb. 7, 2017, 3:21 p.m. | #10
On Tue, Feb 07, 2017 at 05:16:14PM +0800, Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>
> 
> Core code already makes drm_driver.get_vblank_counter hook optional by
> letting drm_vblank_no_hw_counter be the default implementation for the
> function hook.  So the drm_vblank_no_hw_counter assignment in the driver
> code becomes redundant and can be removed now.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>
> Cc: Mali DP Maintainers <malidp@foss.arm.com>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
> Cc: Inki Dae <inki.dae@samsung.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: CK Hu <ck.hu@mediatek.com>
> Cc: Neil Armstrong <narmstrong@baylibre.com>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Mark Yao <mark.yao@rock-chips.com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
> Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Eric Anholt <eric@anholt.net>
> ---
>  drivers/gpu/drm/arc/arcpgu_drv.c                | 1 -
>  drivers/gpu/drm/arm/hdlcd_drv.c                 | 1 -
>  drivers/gpu/drm/arm/malidp_drv.c                | 1 -

For the HDLCD and Mali DP drivers:

Acked-by: Liviu Dudau <liviu.dudau@arm.com>

Thanks for doing this!
Liviu

>  drivers/gpu/drm/armada/armada_drv.c             | 1 -
>  drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c    | 1 -
>  drivers/gpu/drm/exynos/exynos_drm_drv.c         | 1 -
>  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c       | 1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 1 -
>  drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 1 -
>  drivers/gpu/drm/i915/i915_irq.c                 | 1 -
>  drivers/gpu/drm/imx/imx-drm-core.c              | 1 -
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c          | 1 -
>  drivers/gpu/drm/meson/meson_drv.c               | 1 -
>  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/rcar-du/rcar_du_drv.c           | 1 -
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c     | 1 -
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c        | 1 -
>  drivers/gpu/drm/sti/sti_drv.c                   | 1 -
>  drivers/gpu/drm/sun4i/sun4i_drv.c               | 1 -
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c             | 1 -
>  drivers/gpu/drm/vc4/vc4_drv.c                   | 1 -
>  drivers/gpu/drm/zte/zx_drm_drv.c                | 1 -
>  25 files changed, 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
> index 8d8344ed655e..1926b200e4cb 100644
> --- a/drivers/gpu/drm/arc/arcpgu_drv.c
> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c
> @@ -175,7 +175,6 @@ static int arcpgu_unload(struct drm_device *drm)
>  	.dumb_create = drm_gem_cma_dumb_create,
>  	.dumb_map_offset = drm_gem_cma_dumb_map_offset,
>  	.dumb_destroy = drm_gem_dumb_destroy,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
>  	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 4ce4f970920b..5d79e87f7421 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -278,7 +278,6 @@ static int hdlcd_debugfs_init(struct drm_minor *minor)
>  	.irq_preinstall = hdlcd_irq_preinstall,
>  	.irq_postinstall = hdlcd_irq_postinstall,
>  	.irq_uninstall = hdlcd_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = hdlcd_enable_vblank,
>  	.disable_vblank = hdlcd_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 8b0672d4aee9..ca6ccd172de3 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -213,7 +213,6 @@ static void malidp_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
>  			   DRIVER_PRIME,
>  	.lastclose = malidp_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = malidp_enable_vblank,
>  	.disable_vblank = malidp_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index 63f42d001f33..bb27892012de 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -87,7 +87,6 @@ static void armada_drm_lastclose(struct drm_device *dev)
>  
>  static struct drm_driver armada_drm_driver = {
>  	.lastclose		= armada_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= armada_drm_enable_vblank,
>  	.disable_vblank		= armada_drm_disable_vblank,
>  	.gem_free_object_unlocked = armada_gem_free_object,
> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> index 427bdff425c2..5cba65b5ea16 100644
> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
> @@ -760,7 +760,6 @@ static void atmel_hlcdc_dc_disable_vblank(struct drm_device *dev,
>  	.irq_preinstall = atmel_hlcdc_dc_irq_uninstall,
>  	.irq_postinstall = atmel_hlcdc_dc_irq_postinstall,
>  	.irq_uninstall = atmel_hlcdc_dc_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = atmel_hlcdc_dc_enable_vblank,
>  	.disable_vblank = atmel_hlcdc_dc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 035d02ecffcd..a1c22eb12f4b 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -263,7 +263,6 @@ static void exynos_drm_lastclose(struct drm_device *dev)
>  	.preclose		= exynos_drm_preclose,
>  	.lastclose		= exynos_drm_lastclose,
>  	.postclose		= exynos_drm_postclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= exynos_drm_crtc_enable_vblank,
>  	.disable_vblank		= exynos_drm_crtc_disable_vblank,
>  	.gem_free_object_unlocked = exynos_drm_gem_free_object,
> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> index 04173235f448..b59b816a1d7d 100644
> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
> @@ -203,7 +203,6 @@ static void fsl_dcu_drm_lastclose(struct drm_device *dev)
>  	.load			= fsl_dcu_load,
>  	.unload			= fsl_dcu_unload,
>  	.irq_handler		= fsl_dcu_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= fsl_dcu_drm_enable_vblank,
>  	.disable_vblank		= fsl_dcu_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7e2043f4348c..8cac70454b57 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -84,7 +84,6 @@ irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
>  	.desc			= "hibmc drm driver",
>  	.major			= 1,
>  	.minor			= 0,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= hibmc_enable_vblank,
>  	.disable_vblank		= hibmc_disable_vblank,
>  	.gem_free_object_unlocked = hibmc_gem_free_object,
> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> index 9a0678a33e0d..0624fab8046f 100644
> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
> @@ -1025,7 +1025,6 @@ static int ade_drm_init(struct platform_device *pdev)
>  			       IRQF_SHARED, dev->driver->name, acrtc);
>  	if (ret)
>  		return ret;
> -	dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	dev->driver->enable_vblank = ade_enable_vblank;
>  	dev->driver->disable_vblank = ade_disable_vblank;
>  
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 47d6131e977f..5aab08172faf 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -4218,7 +4218,6 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
>  	if (IS_GEN2(dev_priv)) {
>  		/* Gen2 doesn't have a hardware frame counter */
>  		dev->max_vblank_count = 0;
> -		dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
>  	} else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
>  		dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
>  		dev->driver->get_vblank_counter = g4x_get_vblank_counter;
> diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
> index 5ae48836652e..4badbb66d69e 100644
> --- a/drivers/gpu/drm/imx/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/imx-drm-core.c
> @@ -288,7 +288,6 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
>  	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
>  	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
>  	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= imx_drm_enable_vblank,
>  	.disable_vblank		= imx_drm_disable_vblank,
>  	.ioctls			= imx_drm_ioctls,
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> index b5f88e6d078e..ef8675336465 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
> @@ -256,7 +256,6 @@ static void mtk_drm_kms_deinit(struct drm_device *drm)
>  	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = mtk_drm_crtc_enable_vblank,
>  	.disable_vblank = mtk_drm_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
> index 6f2fd82ed483..c0a59889c45f 100644
> --- a/drivers/gpu/drm/meson/meson_drv.c
> +++ b/drivers/gpu/drm/meson/meson_drv.c
> @@ -129,7 +129,6 @@ static irqreturn_t meson_irq(int irq, void *arg)
>  	/* Vblank */
>  	.enable_vblank		= meson_enable_vblank,
>  	.disable_vblank		= meson_disable_vblank,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  
>  	/* IRQ */
>  	.irq_handler		= meson_irq,
> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
> index 70226eaa5cac..cb47f4a14215 100644
> --- a/drivers/gpu/drm/msm/msm_drv.c
> +++ b/drivers/gpu/drm/msm/msm_drv.c
> @@ -816,7 +816,6 @@ static int msm_ioctl_gem_madvise(struct drm_device *dev, void *data,
>  	.irq_preinstall     = msm_irq_preinstall,
>  	.irq_postinstall    = msm_irq_postinstall,
>  	.irq_uninstall      = msm_irq_uninstall,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = msm_enable_vblank,
>  	.disable_vblank     = msm_disable_vblank,
>  	.gem_free_object    = msm_gem_free_object,
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index cdfbe0284635..104722a78bd6 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -340,7 +340,6 @@ static irqreturn_t mxsfb_irq_handler(int irq, void *data)
>  	.irq_handler		= mxsfb_irq_handler,
>  	.irq_preinstall		= mxsfb_irq_preinstall,
>  	.irq_uninstall		= mxsfb_irq_preinstall,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= mxsfb_enable_vblank,
>  	.disable_vblank		= mxsfb_disable_vblank,
>  	.gem_free_object	= drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
> index 9ed2ca0769e3..626df485a03a 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
> @@ -977,7 +977,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
>  	.debugfs_cleanup = nouveau_drm_debugfs_cleanup,
>  #endif
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = nouveau_display_vblank_enable,
>  	.disable_vblank = nouveau_display_vblank_disable,
>  	.get_scanout_position = nouveau_display_scanoutpos,
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
> index afe8f05b927b..da049a7636ad 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -714,7 +714,6 @@ static void dev_lastclose(struct drm_device *dev)
>  		DRIVER_ATOMIC,
>  	.open = dev_open,
>  	.lastclose = dev_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = omap_irq_enable_vblank,
>  	.disable_vblank = omap_irq_disable_vblank,
>  #ifdef CONFIG_DEBUG_FS
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index c05e00872778..094da3ef49d1 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -259,7 +259,6 @@ static void rcar_du_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME
>  				| DRIVER_ATOMIC,
>  	.lastclose		= rcar_du_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rcar_du_enable_vblank,
>  	.disable_vblank		= rcar_du_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index c30d649cb147..39243480c834 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -270,7 +270,6 @@ static void rockchip_drm_lastclose(struct drm_device *dev)
>  	.driver_features	= DRIVER_MODESET | DRIVER_GEM |
>  				  DRIVER_PRIME | DRIVER_ATOMIC,
>  	.lastclose		= rockchip_drm_lastclose,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= rockchip_drm_crtc_enable_vblank,
>  	.disable_vblank		= rockchip_drm_crtc_disable_vblank,
>  	.gem_vm_ops		= &drm_gem_cma_vm_ops,
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> index 33cec3d42389..d6b0545d252d 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -256,7 +256,6 @@ static void shmob_drm_disable_vblank(struct drm_device *dev, unsigned int pipe)
>  	.load			= shmob_drm_load,
>  	.unload			= shmob_drm_unload,
>  	.irq_handler		= shmob_drm_irq,
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= shmob_drm_enable_vblank,
>  	.disable_vblank		= shmob_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
> index 788feed208d7..d4b771d2d10d 100644
> --- a/drivers/gpu/drm/sti/sti_drv.c
> +++ b/drivers/gpu/drm/sti/sti_drv.c
> @@ -264,7 +264,6 @@ static void sti_mode_config_init(struct drm_device *dev)
>  	.dumb_destroy = drm_gem_dumb_destroy,
>  	.fops = &sti_driver_fops,
>  
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = sti_crtc_enable_vblank,
>  	.disable_vblank = sti_crtc_disable_vblank,
>  
> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
> index 4ce665349f6b..0816c635df20 100644
> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c
> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
> @@ -92,7 +92,6 @@ static void sun4i_drv_disable_vblank(struct drm_device *drm, unsigned int pipe)
>  	/* Frame Buffer Operations */
>  
>  	/* VBlank Operations */
> -	.get_vblank_counter	= drm_vblank_no_hw_counter,
>  	.enable_vblank		= sun4i_drv_enable_vblank,
>  	.disable_vblank		= sun4i_drv_disable_vblank,
>  };
> diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> index 372d86fbb093..d5bc98e283d9 100644
> --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
> @@ -557,7 +557,6 @@ static int tilcdc_debugfs_init(struct drm_minor *minor)
>  			       DRIVER_PRIME | DRIVER_ATOMIC),
>  	.lastclose          = tilcdc_lastclose,
>  	.irq_handler        = tilcdc_irq,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank      = tilcdc_enable_vblank,
>  	.disable_vblank     = tilcdc_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
> index a459745e96f7..3a8709d85da1 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.c
> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
> @@ -139,7 +139,6 @@ static void vc4_lastclose(struct drm_device *dev)
>  
>  	.enable_vblank = vc4_enable_vblank,
>  	.disable_vblank = vc4_disable_vblank,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.get_scanout_position = vc4_crtc_get_scanoutpos,
>  	.get_vblank_timestamp = vc4_crtc_get_vblank_timestamp,
>  
> diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
> index 5c6944a1e72c..afd713a954c6 100644
> --- a/drivers/gpu/drm/zte/zx_drm_drv.c
> +++ b/drivers/gpu/drm/zte/zx_drm_drv.c
> @@ -71,7 +71,6 @@ static void zx_drm_lastclose(struct drm_device *drm)
>  	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
>  			   DRIVER_ATOMIC,
>  	.lastclose = zx_drm_lastclose,
> -	.get_vblank_counter = drm_vblank_no_hw_counter,
>  	.enable_vblank = zx_vou_enable_vblank,
>  	.disable_vblank = zx_vou_disable_vblank,
>  	.gem_free_object = drm_gem_cma_free_object,
> -- 
> 1.9.1
>
Eric Anholt Feb. 8, 2017, 7:58 p.m. | #11
Shawn Guo <shawnguo@kernel.org> writes:

> From: Shawn Guo <shawn.guo@linaro.org>

>

> Core code already makes drm_driver.get_vblank_counter hook optional by

> letting drm_vblank_no_hw_counter be the default implementation for the

> function hook.  So the drm_vblank_no_hw_counter assignment in the driver

> code becomes redundant and can be removed now.


Thanks.  Missing this hook was actually a problem in vc4 for a while, so
it's nice to have sensible defaults.  For vc4:

Acked-by: Eric Anholt <eric@anholt.net>

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c
index 8d8344ed655e..1926b200e4cb 100644
--- a/drivers/gpu/drm/arc/arcpgu_drv.c
+++ b/drivers/gpu/drm/arc/arcpgu_drv.c
@@ -175,7 +175,6 @@  static int arcpgu_unload(struct drm_device *drm)
 	.dumb_create = drm_gem_cma_dumb_create,
 	.dumb_map_offset = drm_gem_cma_dumb_map_offset,
 	.dumb_destroy = drm_gem_dumb_destroy,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 4ce4f970920b..5d79e87f7421 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -278,7 +278,6 @@  static int hdlcd_debugfs_init(struct drm_minor *minor)
 	.irq_preinstall = hdlcd_irq_preinstall,
 	.irq_postinstall = hdlcd_irq_postinstall,
 	.irq_uninstall = hdlcd_irq_uninstall,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = hdlcd_enable_vblank,
 	.disable_vblank = hdlcd_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 8b0672d4aee9..ca6ccd172de3 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -213,7 +213,6 @@  static void malidp_lastclose(struct drm_device *drm)
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
 			   DRIVER_PRIME,
 	.lastclose = malidp_lastclose,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = malidp_enable_vblank,
 	.disable_vblank = malidp_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
index 63f42d001f33..bb27892012de 100644
--- a/drivers/gpu/drm/armada/armada_drv.c
+++ b/drivers/gpu/drm/armada/armada_drv.c
@@ -87,7 +87,6 @@  static void armada_drm_lastclose(struct drm_device *dev)
 
 static struct drm_driver armada_drm_driver = {
 	.lastclose		= armada_drm_lastclose,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= armada_drm_enable_vblank,
 	.disable_vblank		= armada_drm_disable_vblank,
 	.gem_free_object_unlocked = armada_gem_free_object,
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
index 427bdff425c2..5cba65b5ea16 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c
@@ -760,7 +760,6 @@  static void atmel_hlcdc_dc_disable_vblank(struct drm_device *dev,
 	.irq_preinstall = atmel_hlcdc_dc_irq_uninstall,
 	.irq_postinstall = atmel_hlcdc_dc_irq_postinstall,
 	.irq_uninstall = atmel_hlcdc_dc_irq_uninstall,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = atmel_hlcdc_dc_enable_vblank,
 	.disable_vblank = atmel_hlcdc_dc_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 035d02ecffcd..a1c22eb12f4b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -263,7 +263,6 @@  static void exynos_drm_lastclose(struct drm_device *dev)
 	.preclose		= exynos_drm_preclose,
 	.lastclose		= exynos_drm_lastclose,
 	.postclose		= exynos_drm_postclose,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= exynos_drm_crtc_enable_vblank,
 	.disable_vblank		= exynos_drm_crtc_disable_vblank,
 	.gem_free_object_unlocked = exynos_drm_gem_free_object,
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
index 04173235f448..b59b816a1d7d 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c
@@ -203,7 +203,6 @@  static void fsl_dcu_drm_lastclose(struct drm_device *dev)
 	.load			= fsl_dcu_load,
 	.unload			= fsl_dcu_unload,
 	.irq_handler		= fsl_dcu_drm_irq,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= fsl_dcu_drm_enable_vblank,
 	.disable_vblank		= fsl_dcu_drm_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index 7e2043f4348c..8cac70454b57 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -84,7 +84,6 @@  irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
 	.desc			= "hibmc drm driver",
 	.major			= 1,
 	.minor			= 0,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= hibmc_enable_vblank,
 	.disable_vblank		= hibmc_disable_vblank,
 	.gem_free_object_unlocked = hibmc_gem_free_object,
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 9a0678a33e0d..0624fab8046f 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -1025,7 +1025,6 @@  static int ade_drm_init(struct platform_device *pdev)
 			       IRQF_SHARED, dev->driver->name, acrtc);
 	if (ret)
 		return ret;
-	dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
 	dev->driver->enable_vblank = ade_enable_vblank;
 	dev->driver->disable_vblank = ade_disable_vblank;
 
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 47d6131e977f..5aab08172faf 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -4218,7 +4218,6 @@  void intel_irq_init(struct drm_i915_private *dev_priv)
 	if (IS_GEN2(dev_priv)) {
 		/* Gen2 doesn't have a hardware frame counter */
 		dev->max_vblank_count = 0;
-		dev->driver->get_vblank_counter = drm_vblank_no_hw_counter;
 	} else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
 		dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
 		dev->driver->get_vblank_counter = g4x_get_vblank_counter;
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index 5ae48836652e..4badbb66d69e 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -288,7 +288,6 @@  int imx_drm_encoder_parse_of(struct drm_device *drm,
 	.gem_prime_vmap		= drm_gem_cma_prime_vmap,
 	.gem_prime_vunmap	= drm_gem_cma_prime_vunmap,
 	.gem_prime_mmap		= drm_gem_cma_prime_mmap,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= imx_drm_enable_vblank,
 	.disable_vblank		= imx_drm_disable_vblank,
 	.ioctls			= imx_drm_ioctls,
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index b5f88e6d078e..ef8675336465 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -256,7 +256,6 @@  static void mtk_drm_kms_deinit(struct drm_device *drm)
 	.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = mtk_drm_crtc_enable_vblank,
 	.disable_vblank = mtk_drm_crtc_disable_vblank,
 
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 6f2fd82ed483..c0a59889c45f 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -129,7 +129,6 @@  static irqreturn_t meson_irq(int irq, void *arg)
 	/* Vblank */
 	.enable_vblank		= meson_enable_vblank,
 	.disable_vblank		= meson_disable_vblank,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 
 	/* IRQ */
 	.irq_handler		= meson_irq,
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 70226eaa5cac..cb47f4a14215 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -816,7 +816,6 @@  static int msm_ioctl_gem_madvise(struct drm_device *dev, void *data,
 	.irq_preinstall     = msm_irq_preinstall,
 	.irq_postinstall    = msm_irq_postinstall,
 	.irq_uninstall      = msm_irq_uninstall,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank      = msm_enable_vblank,
 	.disable_vblank     = msm_disable_vblank,
 	.gem_free_object    = msm_gem_free_object,
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index cdfbe0284635..104722a78bd6 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -340,7 +340,6 @@  static irqreturn_t mxsfb_irq_handler(int irq, void *data)
 	.irq_handler		= mxsfb_irq_handler,
 	.irq_preinstall		= mxsfb_irq_preinstall,
 	.irq_uninstall		= mxsfb_irq_preinstall,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= mxsfb_enable_vblank,
 	.disable_vblank		= mxsfb_disable_vblank,
 	.gem_free_object	= drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 9ed2ca0769e3..626df485a03a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -977,7 +977,6 @@  static int nouveau_drm_probe(struct pci_dev *pdev,
 	.debugfs_cleanup = nouveau_drm_debugfs_cleanup,
 #endif
 
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = nouveau_display_vblank_enable,
 	.disable_vblank = nouveau_display_vblank_disable,
 	.get_scanout_position = nouveau_display_scanoutpos,
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c
index afe8f05b927b..da049a7636ad 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.c
+++ b/drivers/gpu/drm/omapdrm/omap_drv.c
@@ -714,7 +714,6 @@  static void dev_lastclose(struct drm_device *dev)
 		DRIVER_ATOMIC,
 	.open = dev_open,
 	.lastclose = dev_lastclose,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = omap_irq_enable_vblank,
 	.disable_vblank = omap_irq_disable_vblank,
 #ifdef CONFIG_DEBUG_FS
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index c05e00872778..094da3ef49d1 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -259,7 +259,6 @@  static void rcar_du_disable_vblank(struct drm_device *dev, unsigned int pipe)
 	.driver_features	= DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME
 				| DRIVER_ATOMIC,
 	.lastclose		= rcar_du_lastclose,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= rcar_du_enable_vblank,
 	.disable_vblank		= rcar_du_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index c30d649cb147..39243480c834 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -270,7 +270,6 @@  static void rockchip_drm_lastclose(struct drm_device *dev)
 	.driver_features	= DRIVER_MODESET | DRIVER_GEM |
 				  DRIVER_PRIME | DRIVER_ATOMIC,
 	.lastclose		= rockchip_drm_lastclose,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= rockchip_drm_crtc_enable_vblank,
 	.disable_vblank		= rockchip_drm_crtc_disable_vblank,
 	.gem_vm_ops		= &drm_gem_cma_vm_ops,
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 33cec3d42389..d6b0545d252d 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -256,7 +256,6 @@  static void shmob_drm_disable_vblank(struct drm_device *dev, unsigned int pipe)
 	.load			= shmob_drm_load,
 	.unload			= shmob_drm_unload,
 	.irq_handler		= shmob_drm_irq,
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= shmob_drm_enable_vblank,
 	.disable_vblank		= shmob_drm_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c
index 788feed208d7..d4b771d2d10d 100644
--- a/drivers/gpu/drm/sti/sti_drv.c
+++ b/drivers/gpu/drm/sti/sti_drv.c
@@ -264,7 +264,6 @@  static void sti_mode_config_init(struct drm_device *dev)
 	.dumb_destroy = drm_gem_dumb_destroy,
 	.fops = &sti_driver_fops,
 
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = sti_crtc_enable_vblank,
 	.disable_vblank = sti_crtc_disable_vblank,
 
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index 4ce665349f6b..0816c635df20 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -92,7 +92,6 @@  static void sun4i_drv_disable_vblank(struct drm_device *drm, unsigned int pipe)
 	/* Frame Buffer Operations */
 
 	/* VBlank Operations */
-	.get_vblank_counter	= drm_vblank_no_hw_counter,
 	.enable_vblank		= sun4i_drv_enable_vblank,
 	.disable_vblank		= sun4i_drv_disable_vblank,
 };
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 372d86fbb093..d5bc98e283d9 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -557,7 +557,6 @@  static int tilcdc_debugfs_init(struct drm_minor *minor)
 			       DRIVER_PRIME | DRIVER_ATOMIC),
 	.lastclose          = tilcdc_lastclose,
 	.irq_handler        = tilcdc_irq,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank      = tilcdc_enable_vblank,
 	.disable_vblank     = tilcdc_disable_vblank,
 	.gem_free_object_unlocked = drm_gem_cma_free_object,
diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index a459745e96f7..3a8709d85da1 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -139,7 +139,6 @@  static void vc4_lastclose(struct drm_device *dev)
 
 	.enable_vblank = vc4_enable_vblank,
 	.disable_vblank = vc4_disable_vblank,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.get_scanout_position = vc4_crtc_get_scanoutpos,
 	.get_vblank_timestamp = vc4_crtc_get_vblank_timestamp,
 
diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
index 5c6944a1e72c..afd713a954c6 100644
--- a/drivers/gpu/drm/zte/zx_drm_drv.c
+++ b/drivers/gpu/drm/zte/zx_drm_drv.c
@@ -71,7 +71,6 @@  static void zx_drm_lastclose(struct drm_device *drm)
 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME |
 			   DRIVER_ATOMIC,
 	.lastclose = zx_drm_lastclose,
-	.get_vblank_counter = drm_vblank_no_hw_counter,
 	.enable_vblank = zx_vou_enable_vblank,
 	.disable_vblank = zx_vou_disable_vblank,
 	.gem_free_object = drm_gem_cma_free_object,