All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Shawn Guo <shawnguo@kernel.org>
Cc: Neil Armstrong <narmstrong@baylibre.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Liviu Dudau <liviu.dudau@arm.com>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Marek Vasut <marex@denx.de>,
	Alexey Brodkin <abrodkin@synopsys.com>,
	Russell King <linux@armlinux.org.uk>,
	Xinliang Liu <z.liuxinliang@hisilicon.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Mali DP Maintainers <malidp@foss.arm.com>,
	Ben Skeggs <bskeggs@redhat.com>, Jyri Sarha <jsarha@ti.com>,
	dri-devel@lists.freedesktop.org,
	Maxime Ripard <maxime.ripard@free-electrons.com>
Subject: Re: [PATCH v3 18/23] drm: shmobile: use vblank hooks in struct drm_crtc_funcs
Date: Tue, 07 Feb 2017 16:05:38 +0200	[thread overview]
Message-ID: <5255503.H0HOnfCQiI@avalon> (raw)
In-Reply-To: <1486458995-31018-19-git-send-email-shawnguo@kernel.org>

Hi Shawn,

Thank you for the patch.

On Tuesday 07 Feb 2017 17:16:30 Shawn Guo wrote:
> From: Shawn Guo <shawn.guo@linaro.org>
> 
> The vblank hooks in struct drm_driver are deprecated and only meant for
> legacy drivers.  For modern drivers with DRIVER_MODESET flag, the hooks
> in struct drm_crtc_funcs should be used instead.
> 
> As the result, shmob_drm_crtc_enable_vblank() becomes a static function,
> although it gets moved around a bit to save forward declaration.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  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  | 19 ------------
>  3 files changed, 35 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c index
> 445476551695..8244890e6d53 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> @@ -476,10 +476,45 @@ static int shmob_drm_crtc_page_flip(struct drm_crtc
> *crtc, return 0;
>  }
> 
> +static void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev,
> +					 bool enable)
> +{
> +	unsigned long flags;
> +	u32 ldintr;
> +
> +	/* Be careful not to acknowledge any pending interrupt. */
> +	spin_lock_irqsave(&sdev->irq_lock, flags);
> +	ldintr = lcdc_read(sdev, LDINTR) | LDINTR_STATUS_MASK;
> +	if (enable)
> +		ldintr |= LDINTR_VEE;
> +	else
> +		ldintr &= ~LDINTR_VEE;
> +	lcdc_write(sdev, LDINTR, ldintr);
> +	spin_unlock_irqrestore(&sdev->irq_lock, flags);
> +}
> +
> +static int shmob_drm_enable_vblank(struct drm_crtc *crtc)
> +{
> +	struct shmob_drm_device *sdev = crtc->dev->dev_private;
> +
> +	shmob_drm_crtc_enable_vblank(sdev, true);
> +
> +	return 0;
> +}
> +
> +static void shmob_drm_disable_vblank(struct drm_crtc *crtc)
> +{
> +	struct shmob_drm_device *sdev = crtc->dev->dev_private;
> +
> +	shmob_drm_crtc_enable_vblank(sdev, false);
> +}
> +
>  static const struct drm_crtc_funcs crtc_funcs = {
>  	.destroy = drm_crtc_cleanup,
>  	.set_config = drm_crtc_helper_set_config,
>  	.page_flip = shmob_drm_crtc_page_flip,
> +	.enable_vblank = shmob_drm_enable_vblank,
> +	.disable_vblank = shmob_drm_disable_vblank,
>  };
> 
>  int shmob_drm_crtc_create(struct shmob_drm_device *sdev)
> @@ -594,22 +629,6 @@ int shmob_drm_encoder_create(struct shmob_drm_device
> *sdev) return 0;
>  }
> 
> -void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev, bool
> enable)
> -{
> -	unsigned long flags;
> -	u32 ldintr;
> -
> -	/* Be careful not to acknowledge any pending interrupt. */
> -	spin_lock_irqsave(&sdev->irq_lock, flags);
> -	ldintr = lcdc_read(sdev, LDINTR) | LDINTR_STATUS_MASK;
> -	if (enable)
> -		ldintr |= LDINTR_VEE;
> -	else
> -		ldintr &= ~LDINTR_VEE;
> -	lcdc_write(sdev, LDINTR, ldintr);
> -	spin_unlock_irqrestore(&sdev->irq_lock, flags);
> -}
> -
>  /* ------------------------------------------------------------------------
>   * Connector
>   */
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h index
> 818b31549ddc..f152973df11c 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> @@ -47,7 +47,6 @@ struct shmob_drm_connector {
>  };
> 
>  int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
> -void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev, bool
> enable);
>  void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
>  void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
>  void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> b/drivers/gpu/drm/shmobile/shmob_drm_drv.c index d6b0545d252d..34fefa0ba0f0
> 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -23,7 +23,6 @@
>  #include <drm/drm_crtc_helper.h>
>  #include <drm/drm_gem_cma_helper.h>
> 
> -#include "shmob_drm_crtc.h"
>  #include "shmob_drm_drv.h"
>  #include "shmob_drm_kms.h"
>  #include "shmob_drm_plane.h"
> @@ -222,22 +221,6 @@ static irqreturn_t shmob_drm_irq(int irq, void *arg)
>  	return IRQ_HANDLED;
>  }
> 
> -static int shmob_drm_enable_vblank(struct drm_device *dev, unsigned int
> pipe) -{
> -	struct shmob_drm_device *sdev = dev->dev_private;
> -
> -	shmob_drm_crtc_enable_vblank(sdev, true);
> -
> -	return 0;
> -}
> -
> -static void shmob_drm_disable_vblank(struct drm_device *dev, unsigned int
> pipe) -{
> -	struct shmob_drm_device *sdev = dev->dev_private;
> -
> -	shmob_drm_crtc_enable_vblank(sdev, false);
> -}
> -
>  static const struct file_operations shmob_drm_fops = {
>  	.owner		= THIS_MODULE,
>  	.open		= drm_open,
> @@ -256,8 +239,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,
> -	.enable_vblank		= shmob_drm_enable_vblank,
> -	.disable_vblank		= shmob_drm_disable_vblank,
>  	.gem_free_object_unlocked = drm_gem_cma_free_object,
>  	.gem_vm_ops		= &drm_gem_cma_vm_ops,
>  	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd,

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-02-07 14:05 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-07  9:16 [PATCH v3 00/23] Add vblank hooks to struct drm_crtc_funcs Shawn Guo
2017-02-07  9:16 ` [PATCH v3 01/23] drm: add " Shawn Guo
2017-02-07 10:38   ` Andrzej Hajda
2017-02-07 10:52     ` Daniel Vetter
2017-02-07 11:50       ` Thierry Reding
2017-02-07 11:04   ` Thierry Reding
2017-02-07 14:01   ` Laurent Pinchart
2017-02-07  9:16 ` [PATCH v3 02/23] drm: remove drm_vblank_no_hw_counter assignment from driver code Shawn Guo
2017-02-07  9:27   ` Maxime Ripard
2017-02-07  9:46   ` Boris Brezillon
2017-02-07 10:09   ` Neil Armstrong
2017-02-07 10:22   ` Russell King - ARM Linux
2017-02-07 10:42   ` Laurent Pinchart
2017-02-07 10:44     ` Russell King - ARM Linux
2017-02-07 10:58       ` Laurent Pinchart
2017-02-07 11:01       ` Thierry Reding
2017-02-07 11:54   ` Alexey Brodkin
2017-02-07 15:21   ` Liviu Dudau
2017-02-08 19:58   ` Eric Anholt
2017-02-07  9:16 ` [PATCH v3 03/23] drm: unexport function drm_vblank_no_hw_counter() Shawn Guo
2017-02-07 10:56   ` Laurent Pinchart
2017-02-07  9:16 ` [PATCH v3 04/23] drm: hdlcd: use vblank hooks in struct drm_crtc_funcs Shawn Guo
2017-02-07  9:16 ` [PATCH v3 05/23] drm: malidp: " Shawn Guo
2017-02-07 15:22   ` Liviu Dudau
2017-02-07  9:16 ` [PATCH v3 06/23] drm: armada: " Shawn Guo
2017-02-07 10:23   ` Russell King - ARM Linux
2017-02-07  9:16 ` [PATCH v3 07/23] drm: atmel: " Shawn Guo
2017-02-07  9:46   ` Boris Brezillon
2017-02-07  9:16 ` [PATCH v3 08/23] drm: exynos: " Shawn Guo
2017-02-07 10:47   ` Andrzej Hajda
2017-02-07  9:16 ` [PATCH v3 09/23] drm: fsl-dcu: " Shawn Guo
2017-02-08  5:01   ` Stefan Agner
2017-02-08 12:04     ` Daniel Vetter
2017-02-07  9:16 ` [PATCH v3 10/23] drm: hibmc: " Shawn Guo
2017-02-08 15:39   ` Sean Paul
2017-02-16  3:28   ` Xinliang Liu
2017-02-07  9:16 ` [PATCH v3 11/23] drm: kirin: " Shawn Guo
2017-02-16  3:23   ` Xinliang Liu
2017-02-21 16:20     ` Sean Paul
2017-02-07  9:16 ` [PATCH v3 12/23] drm: imx: remove struct imx_drm_crtc and imx_drm_crtc_helper_funcs Shawn Guo
2017-02-07 10:10   ` Philipp Zabel
2017-02-07  9:16 ` [PATCH v3 13/23] drm: mediatek: use vblank hooks in struct drm_crtc_funcs Shawn Guo
2017-02-21 16:21   ` Sean Paul
2017-02-07  9:16 ` [PATCH v3 14/23] drm: meson: " Shawn Guo
2017-02-07 10:09   ` Neil Armstrong
2017-02-07  9:16 ` [PATCH v3 15/23] drm: qxl: " Shawn Guo
2017-02-21 16:21   ` Sean Paul
2017-02-07  9:16 ` [PATCH v3 16/23] drm: rcar-du: " Shawn Guo
2017-02-07 14:03   ` Laurent Pinchart
2017-02-07  9:16 ` [PATCH v3 17/23] drm: rockchip: remove struct rockchip_crtc_funcs Shawn Guo
2017-02-07 15:35   ` Sean Paul
2017-02-07  9:16 ` [PATCH v3 18/23] drm: shmobile: use vblank hooks in struct drm_crtc_funcs Shawn Guo
2017-02-07 14:05   ` Laurent Pinchart [this message]
2017-02-07  9:16 ` [PATCH v3 19/23] drm: sun4i: " Shawn Guo
2017-02-07  9:28   ` Maxime Ripard
2017-02-07  9:16 ` [PATCH v3 20/23] drm: tegra: " Shawn Guo
2017-02-07 11:02   ` Thierry Reding
2017-02-07  9:16 ` [PATCH v3 21/23] drm: tilcdc: " Shawn Guo
2017-02-07  9:38   ` Jyri Sarha
2017-02-07  9:16 ` [PATCH v3 22/23] drm: vc4: " Shawn Guo
2017-02-08 19:56   ` Eric Anholt
2017-02-07  9:16 ` [PATCH v3 23/23] drm: zte: " Shawn Guo
2017-02-07 15:34   ` Sean Paul
2017-02-08 11:30 ` [PATCH v3 00/23] Add vblank hooks to " Tomi Valkeinen
2017-02-08 18:10   ` Laurent Pinchart
2017-02-08 18:24     ` Daniel Vetter
2017-02-08 15:49 ` Sean Paul
2017-02-09  8:36   ` Shawn Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5255503.H0HOnfCQiI@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=abrodkin@synopsys.com \
    --cc=bskeggs@redhat.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jsarha@ti.com \
    --cc=linux@armlinux.org.uk \
    --cc=liviu.dudau@arm.com \
    --cc=malidp@foss.arm.com \
    --cc=marex@denx.de \
    --cc=maxime.ripard@free-electrons.com \
    --cc=narmstrong@baylibre.com \
    --cc=shawnguo@kernel.org \
    --cc=tomi.valkeinen@ti.com \
    --cc=z.liuxinliang@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.