All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: "Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	linux-arm-msm@vger.kernel.org,
	"DRI Development" <dri-devel@lists.freedesktop.org>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Mario Kleiner" <mario.kleiner@tuebingen.mpg.de>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	freedreno@lists.freedesktop.org,
	"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH 12/16] drm/vblank: Switch to bool in_vblank_irq in get_vblank_timestamp
Date: Wed, 22 Mar 2017 20:23:54 +0200	[thread overview]
Message-ID: <20170322182354.GJ31595@intel.com> (raw)
In-Reply-To: <20170322083617.13361-13-daniel.vetter@ffwll.ch>

On Wed, Mar 22, 2017 at 09:36:13AM +0100, Daniel Vetter wrote:
> It's overkill to have a flag parameter which is essentially used just
> as a boolean. This takes care of core + adjusting drivers.
> 
> Adjusting the scanout position callback is a bit harder, since radeon
> also supplies it's own driver-private flags in there.

This part worried me, but indeed radeon only passes the custom flag to
the scanout position hook. Patch lgtm

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> 
> Cc: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Rob Clark <robdclark@gmail.com>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: freedreno@lists.freedesktop.org
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h       |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c   |  6 ++---
>  drivers/gpu/drm/drm_irq.c                 | 41 +++++++++++++++++--------------
>  drivers/gpu/drm/i915/i915_irq.c           |  4 +--
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c   |  4 +--
>  drivers/gpu/drm/nouveau/nouveau_display.c |  5 ++--
>  drivers/gpu/drm/nouveau/nouveau_display.h |  2 +-
>  drivers/gpu/drm/radeon/radeon_drv.c       |  2 +-
>  drivers/gpu/drm/radeon/radeon_kms.c       |  4 +--
>  drivers/gpu/drm/vc4/vc4_crtc.c            |  4 +--
>  drivers/gpu/drm/vc4/vc4_drv.h             |  2 +-
>  include/drm/drm_drv.h                     | 11 ++++-----
>  include/drm/drm_irq.h                     |  2 +-
>  13 files changed, 46 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index acd8631d8024..edb3bb83e1a9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1771,7 +1771,7 @@ void amdgpu_disable_vblank_kms(struct drm_device *dev, unsigned int pipe);
>  bool amdgpu_get_vblank_timestamp_kms(struct drm_device *dev, unsigned int pipe,
>  				     int *max_error,
>  				     struct timeval *vblank_time,
> -				     unsigned flags);
> +				     bool in_vblank_irq);
>  long amdgpu_kms_compat_ioctl(struct file *filp, unsigned int cmd,
>  			     unsigned long arg);
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> index ac42f707c046..ad295e822d45 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
> @@ -834,7 +834,7 @@ void amdgpu_disable_vblank_kms(struct drm_device *dev, unsigned int pipe)
>   * @crtc: crtc to get the timestamp for
>   * @max_error: max error
>   * @vblank_time: time value
> - * @flags: flags passed to the driver
> + * @in_vblank_irq: called from drm_handle_vblank()
>   *
>   * Gets the timestamp on the requested crtc based on the
>   * scanout position.  (all asics).
> @@ -843,7 +843,7 @@ void amdgpu_disable_vblank_kms(struct drm_device *dev, unsigned int pipe)
>  bool amdgpu_get_vblank_timestamp_kms(struct drm_device *dev, unsigned int pipe,
>  				     int *max_error,
>  				     struct timeval *vblank_time,
> -				     unsigned flags)
> +				     bool in_vblank_irq)
>  {
>  	struct drm_crtc *crtc;
>  	struct amdgpu_device *adev = dev->dev_private;
> @@ -864,7 +864,7 @@ bool amdgpu_get_vblank_timestamp_kms(struct drm_device *dev, unsigned int pipe,
>  
>  	/* Helper routine in DRM core does all the work: */
>  	return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error,
> -						     vblank_time, flags,
> +						     vblank_time, in_vblank_irq,
>  						     &crtc->hwmode);
>  }
>  
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index 2121ea29e1b2..059c3346db68 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -54,7 +54,7 @@
>  
>  static bool
>  drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
> -			  struct timeval *tvblank, unsigned flags);
> +			  struct timeval *tvblank, bool in_vblank_irq);
>  
>  static unsigned int drm_timestamp_precision = 20;  /* Default to 20 usecs. */
>  
> @@ -138,7 +138,7 @@ static void drm_reset_vblank_timestamp(struct drm_device *dev, unsigned int pipe
>  	 */
>  	do {
>  		cur_vblank = __get_vblank_counter(dev, pipe);
> -		rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, 0);
> +		rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, false);
>  	} while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
>  
>  	/*
> @@ -171,7 +171,7 @@ static void drm_reset_vblank_timestamp(struct drm_device *dev, unsigned int pipe
>   * device vblank fields.
>   */
>  static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
> -				    unsigned long flags)
> +				    bool in_vblank_irq)
>  {
>  	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	u32 cur_vblank, diff;
> @@ -194,7 +194,7 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
>  	 */
>  	do {
>  		cur_vblank = __get_vblank_counter(dev, pipe);
> -		rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, flags);
> +		rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, in_vblank_irq);
>  	} while (cur_vblank != __get_vblank_counter(dev, pipe) && --count > 0);
>  
>  	if (dev->max_vblank_count != 0) {
> @@ -214,13 +214,13 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
>  		 */
>  		diff = DIV_ROUND_CLOSEST_ULL(diff_ns, framedur_ns);
>  
> -		if (diff == 0 && flags & DRM_CALLED_FROM_VBLIRQ)
> +		if (diff == 0 && in_vblank_irq)
>  			DRM_DEBUG_VBL("crtc %u: Redundant vblirq ignored."
>  				      " diff_ns = %lld, framedur_ns = %d)\n",
>  				      pipe, (long long) diff_ns, framedur_ns);
>  	} else {
>  		/* some kind of default for drivers w/o accurate vbl timestamping */
> -		diff = (flags & DRM_CALLED_FROM_VBLIRQ) != 0;
> +		diff = in_vblank_irq ? 1 : 0;
>  	}
>  
>  	/*
> @@ -253,7 +253,7 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
>  	 * Otherwise reinitialize delayed at next vblank interrupt and assign 0
>  	 * for now, to mark the vblanktimestamp as invalid.
>  	 */
> -	if (!rc && (flags & DRM_CALLED_FROM_VBLIRQ) == 0)
> +	if (!rc && in_vblank_irq)
>  		t_vblank = (struct timeval) {0, 0};
>  
>  	store_vblank(dev, pipe, diff, &t_vblank, cur_vblank);
> @@ -291,7 +291,7 @@ u32 drm_accurate_vblank_count(struct drm_crtc *crtc)
>  
>  	spin_lock_irqsave(&dev->vblank_time_lock, flags);
>  
> -	drm_update_vblank_count(dev, pipe, 0);
> +	drm_update_vblank_count(dev, pipe, false);
>  	vblank = drm_vblank_count(dev, pipe);
>  
>  	spin_unlock_irqrestore(&dev->vblank_time_lock, flags);
> @@ -347,7 +347,7 @@ static void vblank_disable_and_save(struct drm_device *dev, unsigned int pipe)
>  	 * this time. This makes the count account for the entire time
>  	 * between drm_crtc_vblank_on() and drm_crtc_vblank_off().
>  	 */
> -	drm_update_vblank_count(dev, pipe, 0);
> +	drm_update_vblank_count(dev, pipe, false);
>  
>  	spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
>  }
> @@ -698,9 +698,10 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
>   * @max_error: Desired maximum allowable error in timestamps (nanosecs)
>   *             On return contains true maximum error of timestamp
>   * @vblank_time: Pointer to struct timeval which should receive the timestamp
> - * @flags: Flags to pass to driver:
> - *         0 = Default,
> - *         DRM_CALLED_FROM_VBLIRQ = If function is called from vbl IRQ handler
> + * @in_vblank_irq:
> + *     True when called from drm_crtc_handle_vblank().  Some drivers
> + *     need to apply some workarounds for gpu-specific vblank irq quirks
> + *     if flag is set.
>   * @mode: mode which defines the scanout timings
>   *
>   * Implements calculation of exact vblank timestamps from given drm_display_mode
> @@ -730,7 +731,7 @@ bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
>  					   unsigned int pipe,
>  					   int *max_error,
>  					   struct timeval *vblank_time,
> -					   unsigned flags,
> +					   bool in_vblank_irq,
>  					   const struct drm_display_mode *mode)
>  {
>  	struct timeval tv_etime;
> @@ -738,6 +739,7 @@ bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
>  	unsigned int vbl_status;
>  	int vpos, hpos, i;
>  	int delta_ns, duration_ns;
> +	unsigned flags = in_vblank_irq ? DRM_CALLED_FROM_VBLIRQ : 0;
>  
>  	if (pipe >= dev->num_crtcs) {
>  		DRM_ERROR("Invalid crtc %u\n", pipe);
> @@ -841,9 +843,10 @@ static struct timeval get_drm_timestamp(void)
>   * @dev: DRM device
>   * @pipe: index of CRTC whose vblank timestamp to retrieve
>   * @tvblank: Pointer to target struct timeval which should receive the timestamp
> - * @flags: Flags to pass to driver:
> - *         0 = Default,
> - *         DRM_CALLED_FROM_VBLIRQ = If function is called from vbl IRQ handler
> + * @in_vblank_irq:
> + *     True when called from drm_crtc_handle_vblank().  Some drivers
> + *     need to apply some workarounds for gpu-specific vblank irq quirks
> + *     if flag is set.
>   *
>   * Fetches the system timestamp corresponding to the time of the most recent
>   * vblank interval on specified CRTC. May call into kms-driver to
> @@ -857,7 +860,7 @@ static struct timeval get_drm_timestamp(void)
>   */
>  static bool
>  drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
> -			  struct timeval *tvblank, unsigned flags)
> +			  struct timeval *tvblank, bool in_vblank_irq)
>  {
>  	int ret;
>  
> @@ -867,7 +870,7 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
>  	/* Query driver if possible and precision timestamping enabled. */
>  	if (dev->driver->get_vblank_timestamp && (max_error > 0)) {
>  		ret = dev->driver->get_vblank_timestamp(dev, pipe, &max_error,
> -							tvblank, flags);
> +							tvblank, in_vblank_irq);
>  		if (ret > 0)
>  			return true;
>  	}
> @@ -1710,7 +1713,7 @@ bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)
>  		return false;
>  	}
>  
> -	drm_update_vblank_count(dev, pipe, DRM_CALLED_FROM_VBLIRQ);
> +	drm_update_vblank_count(dev, pipe, true);
>  
>  	spin_unlock(&dev->vblank_time_lock);
>  
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index df149d159ce7..6c8a7e1284c3 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -967,7 +967,7 @@ int intel_get_crtc_scanline(struct intel_crtc *crtc)
>  static bool i915_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
>  			      int *max_error,
>  			      struct timeval *vblank_time,
> -			      unsigned flags)
> +			      bool in_vblank_irq)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_crtc *crtc;
> @@ -991,7 +991,7 @@ static bool i915_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
>  
>  	/* Helper routine in DRM core does all the work: */
>  	return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error,
> -						     vblank_time, flags,
> +						     vblank_time, in_vblank_irq,
>  						     &crtc->base.hwmode);
>  }
>  
> diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> index 655700eb42ba..16184ccbdd3b 100644
> --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
> @@ -598,7 +598,7 @@ static int mdp5_get_scanoutpos(struct drm_device *dev, unsigned int pipe,
>  static bool mdp5_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
>  				      int *max_error,
>  				      struct timeval *vblank_time,
> -				      unsigned flags)
> +				      bool in_vblank_irq)
>  {
>  	struct msm_drm_private *priv = dev->dev_private;
>  	struct drm_crtc *crtc;
> @@ -615,7 +615,7 @@ static bool mdp5_get_vblank_timestamp(struct drm_device *dev, unsigned int pipe,
>  	}
>  
>  	return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error,
> -						     vblank_time, flags,
> +						     vblank_time, in_vblank_irq,
>  						     &crtc->mode);
>  }
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
> index 42f18b0b9c43..be8ec18ba126 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
> @@ -158,7 +158,7 @@ nouveau_display_scanoutpos(struct drm_device *dev, unsigned int pipe,
>  
>  bool
>  nouveau_display_vblstamp(struct drm_device *dev, unsigned int pipe,
> -			 int *max_error, struct timeval *time, unsigned flags)
> +			 int *max_error, struct timeval *time, bool in_vblank_irq)
>  {
>  	struct drm_crtc *crtc;
>  
> @@ -170,7 +170,8 @@ nouveau_display_vblstamp(struct drm_device *dev, unsigned int pipe,
>  			else
>  				mode = &crtc->hwmode;
>  			return drm_calc_vbltimestamp_from_scanoutpos(dev,
> -					pipe, max_error, time, flags, mode);
> +					pipe, max_error, time, in_vblank_irq,
> +					mode);
>  		}
>  	}
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h
> index bc9d1e7b0117..f821fc9e2de3 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_display.h
> +++ b/drivers/gpu/drm/nouveau/nouveau_display.h
> @@ -72,7 +72,7 @@ int  nouveau_display_scanoutpos(struct drm_device *, unsigned int,
>  				unsigned int, int *, int *, ktime_t *,
>  				ktime_t *, const struct drm_display_mode *);
>  bool  nouveau_display_vblstamp(struct drm_device *, unsigned int, int *,
> -			       struct timeval *, unsigned);
> +			       struct timeval *, bool);
>  
>  int  nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb,
>  			    struct drm_pending_vblank_event *event,
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index 6d79b5c2805b..5fbbc6ac165d 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -117,7 +117,7 @@ void radeon_disable_vblank_kms(struct drm_device *dev, unsigned int pipe);
>  bool radeon_get_vblank_timestamp_kms(struct drm_device *dev, unsigned int pipe,
>  				     int *max_error,
>  				     struct timeval *vblank_time,
> -				     unsigned flags);
> +				     bool in_vblank_irq);
>  void radeon_driver_irq_preinstall_kms(struct drm_device *dev);
>  int radeon_driver_irq_postinstall_kms(struct drm_device *dev);
>  void radeon_driver_irq_uninstall_kms(struct drm_device *dev);
> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
> index 9afe72010c64..41765d18f863 100644
> --- a/drivers/gpu/drm/radeon/radeon_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
> @@ -873,7 +873,7 @@ void radeon_disable_vblank_kms(struct drm_device *dev, int crtc)
>  bool radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc,
>  				     int *max_error,
>  				     struct timeval *vblank_time,
> -				     unsigned flags)
> +				     bool in_vblank_irq)
>  {
>  	struct drm_crtc *drmcrtc;
>  	struct radeon_device *rdev = dev->dev_private;
> @@ -890,7 +890,7 @@ bool radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc,
>  
>  	/* Helper routine in DRM core does all the work: */
>  	return drm_calc_vbltimestamp_from_scanoutpos(dev, crtc, max_error,
> -						     vblank_time, flags,
> +						     vblank_time, in_vblank_irq,
>  						     &drmcrtc->hwmode);
>  }
>  
> diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
> index 74260990b6bf..18bd0d816fe3 100644
> --- a/drivers/gpu/drm/vc4/vc4_crtc.c
> +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
> @@ -272,14 +272,14 @@ int vc4_crtc_get_scanoutpos(struct drm_device *dev, unsigned int crtc_id,
>  
>  bool vc4_crtc_get_vblank_timestamp(struct drm_device *dev, unsigned int crtc_id,
>  				  int *max_error, struct timeval *vblank_time,
> -				  unsigned flags)
> +				  bool in_vblank_irq)
>  {
>  	struct drm_crtc *crtc = drm_crtc_from_index(dev, crtc_id);
>  	struct drm_crtc_state *state = crtc->state;
>  
>  	/* Helper routine in DRM core does all the work: */
>  	return drm_calc_vbltimestamp_from_scanoutpos(dev, crtc_id, max_error,
> -						     vblank_time, flags,
> +						     vblank_time, in_vblank_irq,
>  						     &state->adjusted_mode);
>  }
>  
> diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
> index 8a5d0e12ee02..815cdeb54971 100644
> --- a/drivers/gpu/drm/vc4/vc4_drv.h
> +++ b/drivers/gpu/drm/vc4/vc4_drv.h
> @@ -452,7 +452,7 @@ int vc4_crtc_get_scanoutpos(struct drm_device *dev, unsigned int crtc_id,
>  			    const struct drm_display_mode *mode);
>  bool vc4_crtc_get_vblank_timestamp(struct drm_device *dev, unsigned int crtc_id,
>  				  int *max_error, struct timeval *vblank_time,
> -				  unsigned flags);
> +				  bool in_vblank_irq);
>  
>  /* vc4_debugfs.c */
>  int vc4_debugfs_init(struct drm_minor *minor);
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index da78e248d9d8..9fe6301edd6a 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -308,11 +308,10 @@ struct drm_driver {
>  	 *     Returns true upper bound on error for timestamp.
>  	 * vblank_time:
>  	 *     Target location for returned vblank timestamp.
> -	 * flags:
> -	 *     0 = Defaults, no special treatment needed.
> -	 *     DRM_CALLED_FROM_VBLIRQ = Function is called from vblank
> -	 *     irq handler. Some drivers need to apply some workarounds
> -	 *     for gpu-specific vblank irq quirks if flag is set.
> +	 * in_vblank_irq:
> +	 *     True when called from drm_crtc_handle_vblank().  Some drivers
> +	 *     need to apply some workarounds for gpu-specific vblank irq quirks
> +	 *     if flag is set.
>  	 *
>  	 * Returns:
>  	 *
> @@ -322,7 +321,7 @@ struct drm_driver {
>  	bool (*get_vblank_timestamp) (struct drm_device *dev, unsigned int pipe,
>  				     int *max_error,
>  				     struct timeval *vblank_time,
> -				     unsigned flags);
> +				     bool in_vblank_irq);
>  
>  	/* these have to be filled in */
>  
> diff --git a/include/drm/drm_irq.h b/include/drm/drm_irq.h
> index f0d5ccf9b282..445406efb8dc 100644
> --- a/include/drm/drm_irq.h
> +++ b/include/drm/drm_irq.h
> @@ -156,7 +156,7 @@ u32 drm_accurate_vblank_count(struct drm_crtc *crtc);
>  bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
>  					   unsigned int pipe, int *max_error,
>  					   struct timeval *vblank_time,
> -					   unsigned flags,
> +					   bool in_vblank_irq,
>  					   const struct drm_display_mode *mode);
>  void drm_calc_timestamping_constants(struct drm_crtc *crtc,
>  				     const struct drm_display_mode *mode);
> -- 
> 2.11.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Ville Syrjälä
Intel OTC

  reply	other threads:[~2017-03-22 18:24 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22  8:36 [PATCH 00/16] more drmP.h cleanup Daniel Vetter
2017-03-22  8:36 ` [PATCH 01/16] drm: drop extern from function decls Daniel Vetter
2017-03-22 19:27   ` Gabriel Krisman Bertazi
2017-03-22  8:36 ` [PATCH 02/16] drm: Extract drm_debugfs.h Daniel Vetter
2017-03-22 13:34   ` [Intel-gfx] " Ville Syrjälä
2017-03-22 20:09     ` Daniel Vetter
2017-03-22 20:53   ` [PATCH] " Daniel Vetter
2017-03-22 21:01     ` Ville Syrjälä
2017-03-22  8:36 ` [PATCH 03/16] drm: document driver interface for CRC capturing Daniel Vetter
2017-03-22  9:29   ` [Intel-gfx] " Tomeu Vizoso
2017-03-22  8:36 ` [PATCH 04/16] drm/debugfs: Add kerneldoc Daniel Vetter
2017-03-22 19:39   ` Gabriel Krisman Bertazi
2017-03-22 20:54   ` [PATCH] " Daniel Vetter
2017-03-24  8:19     ` Daniel Vetter
2017-03-22  8:36 ` [PATCH 05/16] drm: update todo.rst Daniel Vetter
2017-03-22 18:31   ` Gabriel Krisman Bertazi
2017-03-22 20:25     ` Daniel Vetter
2017-03-22 20:54   ` [PATCH] " Daniel Vetter
2017-03-22  8:36 ` [PATCH 06/16] drm: Consolidate and document sysfs support Daniel Vetter
2017-03-22  8:36 ` [PATCH 07/16] drm: Extract drm_ioctl.h Daniel Vetter
2017-03-22 13:47   ` Ville Syrjälä
2017-03-22 17:56     ` Daniel Vetter
2017-03-22 18:16       ` [Intel-gfx] " Ville Syrjälä
2017-03-22 20:15     ` Daniel Vetter
2017-03-22 20:22       ` Ville Syrjälä
2017-03-22 20:54   ` [PATCH] " Daniel Vetter
2017-03-22  8:36 ` [PATCH 08/16] drm: document drm_ioctl.[hc] Daniel Vetter
2017-03-24 22:11   ` kbuild test robot
2017-03-25 21:39   ` [PATCH] " Daniel Vetter
2017-03-27 10:53     ` Daniel Vetter
2017-03-22  8:36 ` [PATCH 09/16] drm/todo: Add tinydrm refactoring ideas Daniel Vetter
2017-03-25 11:36   ` Noralf Trønnes
2017-03-22  8:36 ` [PATCH 10/16] drm/vblank: Remove DRM_VBLANKTIME_IN_VBLANK Daniel Vetter
2017-03-22 13:49   ` Ville Syrjälä
     [not found] ` <20170322083617.13361-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-03-22  8:36   ` [PATCH 11/16] drm/vblank: Switch drm_driver->get_vblank_timestamp to return a bool Daniel Vetter
     [not found]     ` <20170322083617.13361-12-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-03-22 10:33       ` [Intel-gfx] " Jani Nikula
2017-03-22 13:23         ` Daniel Vetter
     [not found]           ` <20170322132305.zdtehgbox6erdhbq-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-03-22 14:05             ` [Intel-gfx] " Jani Nikula
     [not found]               ` <87d1d98kzc.fsf-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-03-22 17:52                 ` Daniel Vetter
2017-03-22 20:55     ` [PATCH] " Daniel Vetter
2017-03-22  8:36   ` [PATCH 15/16] drm/vblank: Simplify the get_scanout_position helper hook Daniel Vetter
2017-03-24 21:28     ` [PATCH] drm/vblank: fix boolreturn.cocci warnings kbuild test robot
2017-03-24 21:28     ` [PATCH 15/16] drm/vblank: Simplify the get_scanout_position helper hook kbuild test robot
2017-03-25 21:37     ` [PATCH] " Daniel Vetter
2017-03-22  8:36 ` [PATCH 12/16] drm/vblank: Switch to bool in_vblank_irq in get_vblank_timestamp Daniel Vetter
2017-03-22 18:23   ` Ville Syrjälä [this message]
2017-03-22  8:36 ` [PATCH 13/16] drm/vblank: Add FIXME comments about moving the vblank ts hooks Daniel Vetter
2017-03-22  8:36 ` [PATCH 14/16] drm/vblank: drop the mode argument from drm_calc_vbltimestamp_from_scanoutpos Daniel Vetter
     [not found]   ` <20170322083617.13361-15-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2017-03-22 20:56     ` [PATCH] " Daniel Vetter
2017-03-30 12:03       ` Ville Syrjälä
     [not found]         ` <20170330120326.GG30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-03-30 13:27           ` [Intel-gfx] " Daniel Vetter
2017-03-30 13:41             ` Ville Syrjälä
     [not found]               ` <20170330134157.GI30290-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2017-03-30 18:27                 ` Daniel Vetter
     [not found]                   ` <20170330182740.p4joh3spt4ghxco4-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2017-04-04  9:54                     ` Daniel Vetter
2017-03-22  8:36 ` [PATCH 16/16] drm/doc: Small markup fixup Daniel Vetter
2017-03-22  9:02 ` ✗ Fi.CI.BAT: failure for more drmP.h cleanup Patchwork
2017-03-23  8:42 ` ✓ Fi.CI.BAT: success for more drmP.h cleanup (rev7) Patchwork

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=20170322182354.GJ31595@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=alexander.deucher@amd.com \
    --cc=bskeggs@redhat.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=mario.kleiner@tuebingen.mpg.de \
    /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.