All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 09/13] drm/irq: Make pipe unsigned and name consistent
Date: Wed, 12 Aug 2015 17:32:14 +0200	[thread overview]
Message-ID: <20150812153214.GL17734@phenom.ffwll.local> (raw)
In-Reply-To: <1439391635-29166-9-git-send-email-thierry.reding@gmail.com>

On Wed, Aug 12, 2015 at 05:00:31PM +0200, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Name all references to the pipe number (CRTC index) consistently to make
> it easier to distinguish which is a pipe number and which is a pointer
> to struct drm_crtc.
> 
> While at it also make all references to the pipe number unsigned because
> there is no longer any reason why it should ever be negative.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>

There's 2 "int crtc" and one "int pipe" (without the unsigned) left after
this patch. Can you please do a follow-up? Applied this meanwhile.
-Daniel

> ---
>  drivers/gpu/drm/drm_irq.c | 316 +++++++++++++++++++++++-----------------------
>  include/drm/drmP.h        |  32 ++---
>  2 files changed, 175 insertions(+), 173 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index a957b9618e85..f42459b2862d 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -43,8 +43,8 @@
>  #include <linux/export.h>
>  
>  /* Access macro for slots in vblank timestamp ringbuffer. */
> -#define vblanktimestamp(dev, crtc, count) \
> -	((dev)->vblank[crtc].time[(count) % DRM_VBLANKTIME_RBSIZE])
> +#define vblanktimestamp(dev, pipe, count) \
> +	((dev)->vblank[pipe].time[(count) % DRM_VBLANKTIME_RBSIZE])
>  
>  /* Retry timestamp calculation up to 3 times to satisfy
>   * drm_timestamp_precision before giving up.
> @@ -57,7 +57,7 @@
>  #define DRM_REDUNDANT_VBLIRQ_THRESH_NS 1000000
>  
>  static bool
> -drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> +drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
>  			  struct timeval *tvblank, unsigned flags);
>  
>  static unsigned int drm_timestamp_precision = 20;  /* Default to 20 usecs. */
> @@ -107,7 +107,7 @@ static void store_vblank(struct drm_device *dev, int crtc,
>  /**
>   * drm_update_vblank_count - update the master vblank counter
>   * @dev: DRM device
> - * @crtc: counter to update
> + * @pipe: counter to update
>   *
>   * Call back into the driver to update the appropriate vblank counter
>   * (specified by @crtc).  Deal with wraparound, if it occurred, and
> @@ -120,9 +120,9 @@ static void store_vblank(struct drm_device *dev, int crtc,
>   * Note: caller must hold dev->vbl_lock since this reads & writes
>   * device vblank fields.
>   */
> -static void drm_update_vblank_count(struct drm_device *dev, int crtc)
> +static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	u32 cur_vblank, diff;
>  	bool rc;
>  	struct timeval t_vblank;
> @@ -140,21 +140,21 @@ static void drm_update_vblank_count(struct drm_device *dev, int crtc)
>  	 * corresponding vblank timestamp.
>  	 */
>  	do {
> -		cur_vblank = dev->driver->get_vblank_counter(dev, crtc);
> -		rc = drm_get_last_vbltimestamp(dev, crtc, &t_vblank, 0);
> -	} while (cur_vblank != dev->driver->get_vblank_counter(dev, crtc));
> +		cur_vblank = dev->driver->get_vblank_counter(dev, pipe);
> +		rc = drm_get_last_vbltimestamp(dev, pipe, &t_vblank, 0);
> +	} while (cur_vblank != dev->driver->get_vblank_counter(dev, pipe));
>  
>  	/* Deal with counter wrap */
>  	diff = cur_vblank - vblank->last;
>  	if (cur_vblank < vblank->last) {
>  		diff += dev->max_vblank_count + 1;
>  
> -		DRM_DEBUG("last_vblank[%d]=0x%x, cur_vblank=0x%x => diff=0x%x\n",
> -			  crtc, vblank->last, cur_vblank, diff);
> +		DRM_DEBUG("last_vblank[%u]=0x%x, cur_vblank=0x%x => diff=0x%x\n",
> +			  pipe, vblank->last, cur_vblank, diff);
>  	}
>  
> -	DRM_DEBUG("updating vblank count on crtc %d, missed %d\n",
> -		  crtc, diff);
> +	DRM_DEBUG("updating vblank count on crtc %u, missed %d\n",
> +		  pipe, diff);
>  
>  	if (diff == 0)
>  		return;
> @@ -167,7 +167,7 @@ static void drm_update_vblank_count(struct drm_device *dev, int crtc)
>  	if (!rc)
>  		t_vblank = (struct timeval) {0, 0};
>  
> -	store_vblank(dev, crtc, diff, &t_vblank);
> +	store_vblank(dev, pipe, diff, &t_vblank);
>  }
>  
>  /*
> @@ -176,9 +176,9 @@ static void drm_update_vblank_count(struct drm_device *dev, int crtc)
>   * are preserved, even if there are any spurious vblank irq's after
>   * disable.
>   */
> -static void vblank_disable_and_save(struct drm_device *dev, int crtc)
> +static void vblank_disable_and_save(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	unsigned long irqflags;
>  	u32 vblcount;
>  	s64 diff_ns;
> @@ -206,8 +206,8 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
>  	 * vblank interrupt is disabled.
>  	 */
>  	if (!vblank->enabled &&
> -	    drm_get_last_vbltimestamp(dev, crtc, &tvblank, 0)) {
> -		drm_update_vblank_count(dev, crtc);
> +	    drm_get_last_vbltimestamp(dev, pipe, &tvblank, 0)) {
> +		drm_update_vblank_count(dev, pipe);
>  		spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
>  		return;
>  	}
> @@ -218,7 +218,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
>  	 * hardware potentially runtime suspended.
>  	 */
>  	if (vblank->enabled) {
> -		dev->driver->disable_vblank(dev, crtc);
> +		dev->driver->disable_vblank(dev, pipe);
>  		vblank->enabled = false;
>  	}
>  
> @@ -235,9 +235,9 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
>  	 * delayed gpu counter increment.
>  	 */
>  	do {
> -		vblank->last = dev->driver->get_vblank_counter(dev, crtc);
> -		vblrc = drm_get_last_vbltimestamp(dev, crtc, &tvblank, 0);
> -	} while (vblank->last != dev->driver->get_vblank_counter(dev, crtc) && (--count) && vblrc);
> +		vblank->last = dev->driver->get_vblank_counter(dev, pipe);
> +		vblrc = drm_get_last_vbltimestamp(dev, pipe, &tvblank, 0);
> +	} while (vblank->last != dev->driver->get_vblank_counter(dev, pipe) && (--count) && vblrc);
>  
>  	if (!count)
>  		vblrc = 0;
> @@ -247,7 +247,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
>  	 */
>  	vblcount = vblank->count;
>  	diff_ns = timeval_to_ns(&tvblank) -
> -		  timeval_to_ns(&vblanktimestamp(dev, crtc, vblcount));
> +		  timeval_to_ns(&vblanktimestamp(dev, pipe, vblcount));
>  
>  	/* If there is at least 1 msec difference between the last stored
>  	 * timestamp and tvblank, then we are currently executing our
> @@ -262,7 +262,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc)
>  	 * hope for the best.
>  	 */
>  	if (vblrc && (abs64(diff_ns) > 1000000))
> -		store_vblank(dev, crtc, 1, &tvblank);
> +		store_vblank(dev, pipe, 1, &tvblank);
>  
>  	spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags);
>  }
> @@ -271,16 +271,16 @@ static void vblank_disable_fn(unsigned long arg)
>  {
>  	struct drm_vblank_crtc *vblank = (void *)arg;
>  	struct drm_device *dev = vblank->dev;
> +	unsigned int pipe = vblank->pipe;
>  	unsigned long irqflags;
> -	int crtc = vblank->crtc;
>  
>  	if (!dev->vblank_disable_allowed)
>  		return;
>  
>  	spin_lock_irqsave(&dev->vbl_lock, irqflags);
>  	if (atomic_read(&vblank->refcount) == 0 && vblank->enabled) {
> -		DRM_DEBUG("disabling vblank on crtc %d\n", crtc);
> -		vblank_disable_and_save(dev, crtc);
> +		DRM_DEBUG("disabling vblank on crtc %u\n", pipe);
> +		vblank_disable_and_save(dev, pipe);
>  	}
>  	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
>  }
> @@ -293,14 +293,14 @@ static void vblank_disable_fn(unsigned long arg)
>   */
>  void drm_vblank_cleanup(struct drm_device *dev)
>  {
> -	int crtc;
> +	unsigned int pipe;
>  
>  	/* Bail if the driver didn't call drm_vblank_init() */
>  	if (dev->num_crtcs == 0)
>  		return;
>  
> -	for (crtc = 0; crtc < dev->num_crtcs; crtc++) {
> -		struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	for (pipe = 0; pipe < dev->num_crtcs; pipe++) {
> +		struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  
>  		WARN_ON(vblank->enabled &&
>  			drm_core_check_feature(dev, DRIVER_MODESET));
> @@ -316,17 +316,18 @@ EXPORT_SYMBOL(drm_vblank_cleanup);
>  
>  /**
>   * drm_vblank_init - initialize vblank support
> - * @dev: drm_device
> - * @num_crtcs: number of crtcs supported by @dev
> + * @dev: DRM device
> + * @num_crtcs: number of CRTCs supported by @dev
>   *
>   * This function initializes vblank support for @num_crtcs display pipelines.
>   *
>   * Returns:
>   * Zero on success or a negative error code on failure.
>   */
> -int drm_vblank_init(struct drm_device *dev, int num_crtcs)
> +int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs)
>  {
> -	int i, ret = -ENOMEM;
> +	int ret = -ENOMEM;
> +	unsigned int i;
>  
>  	spin_lock_init(&dev->vbl_lock);
>  	spin_lock_init(&dev->vblank_time_lock);
> @@ -341,7 +342,7 @@ int drm_vblank_init(struct drm_device *dev, int num_crtcs)
>  		struct drm_vblank_crtc *vblank = &dev->vblank[i];
>  
>  		vblank->dev = dev;
> -		vblank->crtc = i;
> +		vblank->pipe = i;
>  		init_waitqueue_head(&vblank->queue);
>  		setup_timer(&vblank->disable_timer, vblank_disable_fn,
>  			    (unsigned long)vblank);
> @@ -624,17 +625,17 @@ void drm_calc_timestamping_constants(struct drm_crtc *crtc,
>  		if (mode->flags & DRM_MODE_FLAG_INTERLACE)
>  			framedur_ns /= 2;
>  	} else
> -		DRM_ERROR("crtc %d: Can't calculate constants, dotclock = 0!\n",
> +		DRM_ERROR("crtc %u: Can't calculate constants, dotclock = 0!\n",
>  			  crtc->base.id);
>  
>  	crtc->pixeldur_ns = pixeldur_ns;
>  	crtc->linedur_ns  = linedur_ns;
>  	crtc->framedur_ns = framedur_ns;
>  
> -	DRM_DEBUG("crtc %d: hwmode: htotal %d, vtotal %d, vdisplay %d\n",
> +	DRM_DEBUG("crtc %u: hwmode: htotal %d, vtotal %d, vdisplay %d\n",
>  		  crtc->base.id, mode->crtc_htotal,
>  		  mode->crtc_vtotal, mode->crtc_vdisplay);
> -	DRM_DEBUG("crtc %d: clock %d kHz framedur %d linedur %d, pixeldur %d\n",
> +	DRM_DEBUG("crtc %u: clock %d kHz framedur %d linedur %d, pixeldur %d\n",
>  		  crtc->base.id, dotclock, framedur_ns,
>  		  linedur_ns, pixeldur_ns);
>  }
> @@ -643,7 +644,7 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
>  /**
>   * drm_calc_vbltimestamp_from_scanoutpos - precise vblank timestamp helper
>   * @dev: DRM device
> - * @crtc: Which CRTC's vblank timestamp to retrieve
> + * @pipe: index of CRTC whose vblank timestamp to retrieve
>   * @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
> @@ -686,7 +687,8 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
>   * DRM_VBLANKTIME_INVBL - Timestamp taken while scanout was in vblank interval.
>   *
>   */
> -int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
> +int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
> +					  unsigned int pipe,
>  					  int *max_error,
>  					  struct timeval *vblank_time,
>  					  unsigned flags,
> @@ -700,8 +702,8 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
>  	int framedur_ns, linedur_ns, pixeldur_ns, delta_ns, duration_ns;
>  	bool invbl;
>  
> -	if (crtc < 0 || crtc >= dev->num_crtcs) {
> -		DRM_ERROR("Invalid crtc %d\n", crtc);
> +	if (pipe >= dev->num_crtcs) {
> +		DRM_ERROR("Invalid crtc %u\n", pipe);
>  		return -EINVAL;
>  	}
>  
> @@ -720,7 +722,7 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
>  	 * Happens during initial modesetting of a crtc.
>  	 */
>  	if (framedur_ns == 0) {
> -		DRM_DEBUG("crtc %d: Noop due to uninitialized mode.\n", crtc);
> +		DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe);
>  		return -EAGAIN;
>  	}
>  
> @@ -736,13 +738,13 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
>  		 * Get vertical and horizontal scanout position vpos, hpos,
>  		 * and bounding timestamps stime, etime, pre/post query.
>  		 */
> -		vbl_status = dev->driver->get_scanout_position(dev, crtc, flags, &vpos,
> +		vbl_status = dev->driver->get_scanout_position(dev, pipe, flags, &vpos,
>  							       &hpos, &stime, &etime);
>  
>  		/* Return as no-op if scanout query unsupported or failed. */
>  		if (!(vbl_status & DRM_SCANOUTPOS_VALID)) {
> -			DRM_DEBUG("crtc %d : scanoutpos query failed [%d].\n",
> -				  crtc, vbl_status);
> +			DRM_DEBUG("crtc %u : scanoutpos query failed [%d].\n",
> +				  pipe, vbl_status);
>  			return -EIO;
>  		}
>  
> @@ -756,8 +758,8 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
>  
>  	/* Noisy system timing? */
>  	if (i == DRM_TIMESTAMP_MAXRETRIES) {
> -		DRM_DEBUG("crtc %d: Noisy timestamp %d us > %d us [%d reps].\n",
> -			  crtc, duration_ns/1000, *max_error/1000, i);
> +		DRM_DEBUG("crtc %u: Noisy timestamp %d us > %d us [%d reps].\n",
> +			  pipe, duration_ns/1000, *max_error/1000, i);
>  	}
>  
>  	/* Return upper bound of timestamp precision error. */
> @@ -790,8 +792,8 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
>  		etime = ktime_sub_ns(etime, delta_ns);
>  	*vblank_time = ktime_to_timeval(etime);
>  
> -	DRM_DEBUG("crtc %d : v %d p(%d,%d)@ %ld.%ld -> %ld.%ld [e %d us, %d rep]\n",
> -		  crtc, (int)vbl_status, hpos, vpos,
> +	DRM_DEBUG("crtc %u : v %d p(%d,%d)@ %ld.%ld -> %ld.%ld [e %d us, %d rep]\n",
> +		  pipe, (int)vbl_status, hpos, vpos,
>  		  (long)tv_etime.tv_sec, (long)tv_etime.tv_usec,
>  		  (long)vblank_time->tv_sec, (long)vblank_time->tv_usec,
>  		  duration_ns/1000, i);
> @@ -816,7 +818,7 @@ static struct timeval get_drm_timestamp(void)
>   * drm_get_last_vbltimestamp - retrieve raw timestamp for the most recent
>   *                             vblank interval
>   * @dev: DRM device
> - * @crtc: which CRTC's vblank timestamp to retrieve
> + * @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,
> @@ -833,7 +835,7 @@ static struct timeval get_drm_timestamp(void)
>   * True if timestamp is considered to be very precise, false otherwise.
>   */
>  static bool
> -drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
> +drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
>  			  struct timeval *tvblank, unsigned flags)
>  {
>  	int ret;
> @@ -843,7 +845,7 @@ drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
>  
>  	/* Query driver if possible and precision timestamping enabled. */
>  	if (dev->driver->get_vblank_timestamp && (max_error > 0)) {
> -		ret = dev->driver->get_vblank_timestamp(dev, crtc, &max_error,
> +		ret = dev->driver->get_vblank_timestamp(dev, pipe, &max_error,
>  							tvblank, flags);
>  		if (ret > 0)
>  			return true;
> @@ -860,7 +862,7 @@ drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
>  /**
>   * drm_vblank_count - retrieve "cooked" vblank counter value
>   * @dev: DRM device
> - * @crtc: which counter to retrieve
> + * @pipe: index of CRTC for which to retrieve the counter
>   *
>   * Fetches the "cooked" vblank count value that represents the number of
>   * vblank events since the system was booted, including lost events due to
> @@ -871,11 +873,11 @@ drm_get_last_vbltimestamp(struct drm_device *dev, int crtc,
>   * Returns:
>   * The software vblank counter.
>   */
> -u32 drm_vblank_count(struct drm_device *dev, int crtc)
> +u32 drm_vblank_count(struct drm_device *dev, int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return 0;
>  	return vblank->count;
>  }
> @@ -901,11 +903,10 @@ u32 drm_crtc_vblank_count(struct drm_crtc *crtc)
>  EXPORT_SYMBOL(drm_crtc_vblank_count);
>  
>  /**
> - * drm_vblank_count_and_time - retrieve "cooked" vblank counter value
> - * and the system timestamp corresponding to that vblank counter value.
> - *
> + * drm_vblank_count_and_time - retrieve "cooked" vblank counter value and the
> + *     system timestamp corresponding to that vblank counter value.
>   * @dev: DRM device
> - * @crtc: which counter to retrieve
> + * @pipe: index of CRTC whose counter to retrieve
>   * @vblanktime: Pointer to struct timeval to receive the vblank timestamp.
>   *
>   * Fetches the "cooked" vblank count value that represents the number of
> @@ -913,13 +914,13 @@ EXPORT_SYMBOL(drm_crtc_vblank_count);
>   * modesetting activity. Returns corresponding system timestamp of the time
>   * of the vblank interval that corresponds to the current vblank counter value.
>   */
> -u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc,
> +u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
>  			      struct timeval *vblanktime)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	u32 cur_vblank;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return 0;
>  
>  	/*
> @@ -930,7 +931,7 @@ u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc,
>  	do {
>  		cur_vblank = vblank->count;
>  		smp_rmb();
> -		*vblanktime = vblanktimestamp(dev, crtc, cur_vblank);
> +		*vblanktime = vblanktimestamp(dev, pipe, cur_vblank);
>  		smp_rmb();
>  	} while (cur_vblank != vblank->count);
>  
> @@ -957,7 +958,7 @@ static void send_vblank_event(struct drm_device *dev,
>  /**
>   * drm_send_vblank_event - helper to send vblank event after pageflip
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   * @e: the event to send
>   *
>   * Updates sequence # and timestamp on event, and sends it to userspace.
> @@ -965,20 +966,20 @@ static void send_vblank_event(struct drm_device *dev,
>   *
>   * This is the legacy version of drm_crtc_send_vblank_event().
>   */
> -void drm_send_vblank_event(struct drm_device *dev, int crtc,
> -		struct drm_pending_vblank_event *e)
> +void drm_send_vblank_event(struct drm_device *dev, unsigned int pipe,
> +			   struct drm_pending_vblank_event *e)
>  {
>  	struct timeval now;
>  	unsigned int seq;
>  
>  	if (dev->num_crtcs > 0) {
> -		seq = drm_vblank_count_and_time(dev, crtc, &now);
> +		seq = drm_vblank_count_and_time(dev, pipe, &now);
>  	} else {
>  		seq = 0;
>  
>  		now = get_drm_timestamp();
>  	}
> -	e->pipe = crtc;
> +	e->pipe = pipe;
>  	send_vblank_event(dev, e, seq, &now);
>  }
>  EXPORT_SYMBOL(drm_send_vblank_event);
> @@ -1003,11 +1004,11 @@ EXPORT_SYMBOL(drm_crtc_send_vblank_event);
>  /**
>   * drm_vblank_enable - enable the vblank interrupt on a CRTC
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   */
> -static int drm_vblank_enable(struct drm_device *dev, int crtc)
> +static int drm_vblank_enable(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	int ret = 0;
>  
>  	assert_spin_locked(&dev->vbl_lock);
> @@ -1022,13 +1023,13 @@ static int drm_vblank_enable(struct drm_device *dev, int crtc)
>  		 * timestamps. Filtercode in drm_handle_vblank() will
>  		 * prevent double-accounting of same vblank interval.
>  		 */
> -		ret = dev->driver->enable_vblank(dev, crtc);
> -		DRM_DEBUG("enabling vblank on crtc %d, ret: %d\n", crtc, ret);
> +		ret = dev->driver->enable_vblank(dev, pipe);
> +		DRM_DEBUG("enabling vblank on crtc %u, ret: %d\n", pipe, ret);
>  		if (ret)
>  			atomic_dec(&vblank->refcount);
>  		else {
>  			vblank->enabled = true;
> -			drm_update_vblank_count(dev, crtc);
> +			drm_update_vblank_count(dev, pipe);
>  		}
>  	}
>  
> @@ -1040,7 +1041,7 @@ static int drm_vblank_enable(struct drm_device *dev, int crtc)
>  /**
>   * drm_vblank_get - get a reference count on vblank events
>   * @dev: DRM device
> - * @crtc: which CRTC to own
> + * @pipe: index of CRTC to own
>   *
>   * Acquire a reference count on vblank events to avoid having them disabled
>   * while in use.
> @@ -1050,22 +1051,22 @@ static int drm_vblank_enable(struct drm_device *dev, int crtc)
>   * Returns:
>   * Zero on success, nonzero on failure.
>   */
> -int drm_vblank_get(struct drm_device *dev, int crtc)
> +int drm_vblank_get(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	unsigned long irqflags;
>  	int ret = 0;
>  
>  	if (!dev->num_crtcs)
>  		return -EINVAL;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return -EINVAL;
>  
>  	spin_lock_irqsave(&dev->vbl_lock, irqflags);
>  	/* Going from 0->1 means we have to enable interrupts again */
>  	if (atomic_add_return(1, &vblank->refcount) == 1) {
> -		ret = drm_vblank_enable(dev, crtc);
> +		ret = drm_vblank_enable(dev, pipe);
>  	} else {
>  		if (!vblank->enabled) {
>  			atomic_dec(&vblank->refcount);
> @@ -1097,20 +1098,20 @@ int drm_crtc_vblank_get(struct drm_crtc *crtc)
>  EXPORT_SYMBOL(drm_crtc_vblank_get);
>  
>  /**
> - * drm_vblank_put - give up ownership of vblank events
> + * drm_vblank_put - release ownership of vblank events
>   * @dev: DRM device
> - * @crtc: which counter to give up
> + * @pipe: index of CRTC to release
>   *
>   * Release ownership of a given vblank counter, turning off interrupts
>   * if possible. Disable interrupts after drm_vblank_offdelay milliseconds.
>   *
>   * This is the legacy version of drm_crtc_vblank_put().
>   */
> -void drm_vblank_put(struct drm_device *dev, int crtc)
> +void drm_vblank_put(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
>  	if (WARN_ON(atomic_read(&vblank->refcount) == 0))
> @@ -1147,33 +1148,34 @@ EXPORT_SYMBOL(drm_crtc_vblank_put);
>  /**
>   * drm_wait_one_vblank - wait for one vblank
>   * @dev: DRM device
> - * @crtc: crtc index
> + * @pipe: CRTC index
>   *
>   * This waits for one vblank to pass on @crtc, using the irq driver interfaces.
>   * It is a failure to call this when the vblank irq for @crtc is disabled, e.g.
>   * due to lack of driver support or because the crtc is off.
>   */
> -void drm_wait_one_vblank(struct drm_device *dev, int crtc)
> +void drm_wait_one_vblank(struct drm_device *dev, unsigned int pipe)
>  {
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	int ret;
>  	u32 last;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
> -	ret = drm_vblank_get(dev, crtc);
> -	if (WARN(ret, "vblank not available on crtc %i, ret=%i\n", crtc, ret))
> +	ret = drm_vblank_get(dev, pipe);
> +	if (WARN(ret, "vblank not available on crtc %i, ret=%i\n", pipe, ret))
>  		return;
>  
> -	last = drm_vblank_count(dev, crtc);
> +	last = drm_vblank_count(dev, pipe);
>  
> -	ret = wait_event_timeout(dev->vblank[crtc].queue,
> -				 last != drm_vblank_count(dev, crtc),
> +	ret = wait_event_timeout(vblank->queue,
> +				 last != drm_vblank_count(dev, pipe),
>  				 msecs_to_jiffies(100));
>  
> -	WARN(ret == 0, "vblank wait timed out on crtc %i\n", crtc);
> +	WARN(ret == 0, "vblank wait timed out on crtc %i\n", pipe);
>  
> -	drm_vblank_put(dev, crtc);
> +	drm_vblank_put(dev, pipe);
>  }
>  EXPORT_SYMBOL(drm_wait_one_vblank);
>  
> @@ -1194,7 +1196,7 @@ EXPORT_SYMBOL(drm_crtc_wait_one_vblank);
>  /**
>   * drm_vblank_off - disable vblank events on a CRTC
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   *
>   * Drivers can use this function to shut down the vblank interrupt handling when
>   * disabling a crtc. This function ensures that the latest vblank frame count is
> @@ -1205,21 +1207,21 @@ EXPORT_SYMBOL(drm_crtc_wait_one_vblank);
>   *
>   * This is the legacy version of drm_crtc_vblank_off().
>   */
> -void drm_vblank_off(struct drm_device *dev, int crtc)
> +void drm_vblank_off(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	struct drm_pending_vblank_event *e, *t;
>  	struct timeval now;
>  	unsigned long irqflags;
>  	unsigned int seq;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
>  	spin_lock_irqsave(&dev->event_lock, irqflags);
>  
>  	spin_lock(&dev->vbl_lock);
> -	vblank_disable_and_save(dev, crtc);
> +	vblank_disable_and_save(dev, pipe);
>  	wake_up(&vblank->queue);
>  
>  	/*
> @@ -1233,16 +1235,16 @@ void drm_vblank_off(struct drm_device *dev, int crtc)
>  	spin_unlock(&dev->vbl_lock);
>  
>  	/* Send any queued vblank events, lest the natives grow disquiet */
> -	seq = drm_vblank_count_and_time(dev, crtc, &now);
> +	seq = drm_vblank_count_and_time(dev, pipe, &now);
>  
>  	list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
> -		if (e->pipe != crtc)
> +		if (e->pipe != pipe)
>  			continue;
>  		DRM_DEBUG("Sending premature vblank event on disable: \
>  			  wanted %d, current %d\n",
>  			  e->event.sequence, seq);
>  		list_del(&e->base.link);
> -		drm_vblank_put(dev, e->pipe);
> +		drm_vblank_put(dev, pipe);
>  		send_vblank_event(dev, e, seq, &now);
>  	}
>  	spin_unlock_irqrestore(&dev->event_lock, irqflags);
> @@ -1303,7 +1305,7 @@ EXPORT_SYMBOL(drm_crtc_vblank_reset);
>  /**
>   * drm_vblank_on - enable vblank events on a CRTC
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   *
>   * This functions restores the vblank interrupt state captured with
>   * drm_vblank_off() again. Note that calls to drm_vblank_on() and
> @@ -1312,12 +1314,12 @@ EXPORT_SYMBOL(drm_crtc_vblank_reset);
>   *
>   * This is the legacy version of drm_crtc_vblank_on().
>   */
> -void drm_vblank_on(struct drm_device *dev, int crtc)
> +void drm_vblank_on(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	unsigned long irqflags;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
>  	spin_lock_irqsave(&dev->vbl_lock, irqflags);
> @@ -1335,7 +1337,7 @@ void drm_vblank_on(struct drm_device *dev, int crtc)
>  	 * vblank counter value before and after a modeset
>  	 */
>  	vblank->last =
> -		(dev->driver->get_vblank_counter(dev, crtc) - 1) &
> +		(dev->driver->get_vblank_counter(dev, pipe) - 1) &
>  		dev->max_vblank_count;
>  	/*
>  	 * re-enable interrupts if there are users left, or the
> @@ -1343,7 +1345,7 @@ void drm_vblank_on(struct drm_device *dev, int crtc)
>  	 */
>  	if (atomic_read(&vblank->refcount) != 0 ||
>  	    (!dev->vblank_disable_immediate && drm_vblank_offdelay == 0))
> -		WARN_ON(drm_vblank_enable(dev, crtc));
> +		WARN_ON(drm_vblank_enable(dev, pipe));
>  	spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
>  }
>  EXPORT_SYMBOL(drm_vblank_on);
> @@ -1368,7 +1370,7 @@ EXPORT_SYMBOL(drm_crtc_vblank_on);
>  /**
>   * drm_vblank_pre_modeset - account for vblanks across mode sets
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   *
>   * Account for vblank events across mode setting events, which will likely
>   * reset the hardware frame counter.
> @@ -1388,15 +1390,15 @@ EXPORT_SYMBOL(drm_crtc_vblank_on);
>   * Drivers must call drm_vblank_post_modeset() when re-enabling the same crtc
>   * again.
>   */
> -void drm_vblank_pre_modeset(struct drm_device *dev, int crtc)
> +void drm_vblank_pre_modeset(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  
>  	/* vblank is not initialized (IRQ not installed ?), or has been freed */
>  	if (!dev->num_crtcs)
>  		return;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
>  	/*
> @@ -1408,7 +1410,7 @@ void drm_vblank_pre_modeset(struct drm_device *dev, int crtc)
>  	 */
>  	if (!vblank->inmodeset) {
>  		vblank->inmodeset = 0x1;
> -		if (drm_vblank_get(dev, crtc) == 0)
> +		if (drm_vblank_get(dev, pipe) == 0)
>  			vblank->inmodeset |= 0x2;
>  	}
>  }
> @@ -1417,21 +1419,21 @@ EXPORT_SYMBOL(drm_vblank_pre_modeset);
>  /**
>   * drm_vblank_post_modeset - undo drm_vblank_pre_modeset changes
>   * @dev: DRM device
> - * @crtc: CRTC in question
> + * @pipe: CRTC index
>   *
>   * This function again drops the temporary vblank reference acquired in
>   * drm_vblank_pre_modeset.
>   */
> -void drm_vblank_post_modeset(struct drm_device *dev, int crtc)
> +void drm_vblank_post_modeset(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	unsigned long irqflags;
>  
>  	/* vblank is not initialized (IRQ not installed ?), or has been freed */
>  	if (!dev->num_crtcs)
>  		return;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return;
>  
>  	if (vblank->inmodeset) {
> @@ -1440,7 +1442,7 @@ void drm_vblank_post_modeset(struct drm_device *dev, int crtc)
>  		spin_unlock_irqrestore(&dev->vbl_lock, irqflags);
>  
>  		if (vblank->inmodeset & 0x2)
> -			drm_vblank_put(dev, crtc);
> +			drm_vblank_put(dev, pipe);
>  
>  		vblank->inmodeset = 0;
>  	}
> @@ -1462,7 +1464,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data,
>  		    struct drm_file *file_priv)
>  {
>  	struct drm_modeset_ctl *modeset = data;
> -	unsigned int crtc;
> +	unsigned int pipe;
>  
>  	/* If drm_vblank_init() hasn't been called yet, just no-op */
>  	if (!dev->num_crtcs)
> @@ -1472,16 +1474,16 @@ int drm_modeset_ctl(struct drm_device *dev, void *data,
>  	if (drm_core_check_feature(dev, DRIVER_MODESET))
>  		return 0;
>  
> -	crtc = modeset->crtc;
> -	if (crtc >= dev->num_crtcs)
> +	pipe = modeset->crtc;
> +	if (pipe >= dev->num_crtcs)
>  		return -EINVAL;
>  
>  	switch (modeset->cmd) {
>  	case _DRM_PRE_MODESET:
> -		drm_vblank_pre_modeset(dev, crtc);
> +		drm_vblank_pre_modeset(dev, pipe);
>  		break;
>  	case _DRM_POST_MODESET:
> -		drm_vblank_post_modeset(dev, crtc);
> +		drm_vblank_post_modeset(dev, pipe);
>  		break;
>  	default:
>  		return -EINVAL;
> @@ -1490,7 +1492,7 @@ int drm_modeset_ctl(struct drm_device *dev, void *data,
>  	return 0;
>  }
>  
> -static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
> +static int drm_queue_vblank_event(struct drm_device *dev, unsigned int pipe,
>  				  union drm_wait_vblank *vblwait,
>  				  struct drm_file *file_priv)
>  {
> @@ -1544,7 +1546,7 @@ static int drm_queue_vblank_event(struct drm_device *dev, int pipe,
>  		vblwait->reply.sequence = vblwait->request.sequence;
>  	}
>  
> -	DRM_DEBUG("event on vblank count %d, current %d, crtc %d\n",
> +	DRM_DEBUG("event on vblank count %d, current %d, crtc %u\n",
>  		  vblwait->request.sequence, seq, pipe);
>  
>  	trace_drm_vblank_event_queued(current->pid, pipe,
> @@ -1593,7 +1595,7 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  	struct drm_vblank_crtc *vblank;
>  	union drm_wait_vblank *vblwait = data;
>  	int ret;
> -	unsigned int flags, seq, crtc, high_crtc;
> +	unsigned int flags, seq, pipe, high_pipe;
>  
>  	if (!dev->irq_enabled)
>  		return -EINVAL;
> @@ -1612,22 +1614,22 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  	}
>  
>  	flags = vblwait->request.type & _DRM_VBLANK_FLAGS_MASK;
> -	high_crtc = (vblwait->request.type & _DRM_VBLANK_HIGH_CRTC_MASK);
> -	if (high_crtc)
> -		crtc = high_crtc >> _DRM_VBLANK_HIGH_CRTC_SHIFT;
> +	high_pipe = (vblwait->request.type & _DRM_VBLANK_HIGH_CRTC_MASK);
> +	if (high_pipe)
> +		pipe = high_pipe >> _DRM_VBLANK_HIGH_CRTC_SHIFT;
>  	else
> -		crtc = flags & _DRM_VBLANK_SECONDARY ? 1 : 0;
> -	if (crtc >= dev->num_crtcs)
> +		pipe = flags & _DRM_VBLANK_SECONDARY ? 1 : 0;
> +	if (pipe >= dev->num_crtcs)
>  		return -EINVAL;
>  
> -	vblank = &dev->vblank[crtc];
> +	vblank = &dev->vblank[pipe];
>  
> -	ret = drm_vblank_get(dev, crtc);
> +	ret = drm_vblank_get(dev, pipe);
>  	if (ret) {
>  		DRM_DEBUG("failed to acquire vblank counter, %d\n", ret);
>  		return ret;
>  	}
> -	seq = drm_vblank_count(dev, crtc);
> +	seq = drm_vblank_count(dev, pipe);
>  
>  	switch (vblwait->request.type & _DRM_VBLANK_TYPES_MASK) {
>  	case _DRM_VBLANK_RELATIVE:
> @@ -1644,7 +1646,7 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  		/* must hold on to the vblank ref until the event fires
>  		 * drm_vblank_put will be called asynchronously
>  		 */
> -		return drm_queue_vblank_event(dev, crtc, vblwait, file_priv);
> +		return drm_queue_vblank_event(dev, pipe, vblwait, file_priv);
>  	}
>  
>  	if ((flags & _DRM_VBLANK_NEXTONMISS) &&
> @@ -1652,11 +1654,11 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  		vblwait->request.sequence = seq + 1;
>  	}
>  
> -	DRM_DEBUG("waiting on vblank count %d, crtc %d\n",
> -		  vblwait->request.sequence, crtc);
> +	DRM_DEBUG("waiting on vblank count %d, crtc %u\n",
> +		  vblwait->request.sequence, pipe);
>  	vblank->last_wait = vblwait->request.sequence;
>  	DRM_WAIT_ON(ret, vblank->queue, 3 * HZ,
> -		    (((drm_vblank_count(dev, crtc) -
> +		    (((drm_vblank_count(dev, pipe) -
>  		       vblwait->request.sequence) <= (1 << 23)) ||
>  		     !vblank->enabled ||
>  		     !dev->irq_enabled));
> @@ -1664,7 +1666,7 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  	if (ret != -EINTR) {
>  		struct timeval now;
>  
> -		vblwait->reply.sequence = drm_vblank_count_and_time(dev, crtc, &now);
> +		vblwait->reply.sequence = drm_vblank_count_and_time(dev, pipe, &now);
>  		vblwait->reply.tval_sec = now.tv_sec;
>  		vblwait->reply.tval_usec = now.tv_usec;
>  
> @@ -1675,11 +1677,11 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
>  	}
>  
>  done:
> -	drm_vblank_put(dev, crtc);
> +	drm_vblank_put(dev, pipe);
>  	return ret;
>  }
>  
> -static void drm_handle_vblank_events(struct drm_device *dev, int crtc)
> +static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
>  {
>  	struct drm_pending_vblank_event *e, *t;
>  	struct timeval now;
> @@ -1687,10 +1689,10 @@ static void drm_handle_vblank_events(struct drm_device *dev, int crtc)
>  
>  	assert_spin_locked(&dev->event_lock);
>  
> -	seq = drm_vblank_count_and_time(dev, crtc, &now);
> +	seq = drm_vblank_count_and_time(dev, pipe, &now);
>  
>  	list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) {
> -		if (e->pipe != crtc)
> +		if (e->pipe != pipe)
>  			continue;
>  		if ((seq - e->event.sequence) > (1<<23))
>  			continue;
> @@ -1699,26 +1701,26 @@ static void drm_handle_vblank_events(struct drm_device *dev, int crtc)
>  			  e->event.sequence, seq);
>  
>  		list_del(&e->base.link);
> -		drm_vblank_put(dev, e->pipe);
> +		drm_vblank_put(dev, pipe);
>  		send_vblank_event(dev, e, seq, &now);
>  	}
>  
> -	trace_drm_vblank_event(crtc, seq);
> +	trace_drm_vblank_event(pipe, seq);
>  }
>  
>  /**
>   * drm_handle_vblank - handle a vblank event
>   * @dev: DRM device
> - * @crtc: where this event occurred
> + * @pipe: index of CRTC where this event occurred
>   *
>   * Drivers should call this routine in their vblank interrupt handlers to
>   * update the vblank counter and send any signals that may be pending.
>   *
>   * This is the legacy version of drm_crtc_handle_vblank().
>   */
> -bool drm_handle_vblank(struct drm_device *dev, int crtc)
> +bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe)
>  {
> -	struct drm_vblank_crtc *vblank = &dev->vblank[crtc];
> +	struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
>  	u32 vblcount;
>  	s64 diff_ns;
>  	struct timeval tvblank;
> @@ -1727,7 +1729,7 @@ bool drm_handle_vblank(struct drm_device *dev, int crtc)
>  	if (WARN_ON_ONCE(!dev->num_crtcs))
>  		return false;
>  
> -	if (WARN_ON(crtc >= dev->num_crtcs))
> +	if (WARN_ON(pipe >= dev->num_crtcs))
>  		return false;
>  
>  	spin_lock_irqsave(&dev->event_lock, irqflags);
> @@ -1751,11 +1753,11 @@ bool drm_handle_vblank(struct drm_device *dev, int crtc)
>  
>  	/* Get current timestamp and count. */
>  	vblcount = vblank->count;
> -	drm_get_last_vbltimestamp(dev, crtc, &tvblank, DRM_CALLED_FROM_VBLIRQ);
> +	drm_get_last_vbltimestamp(dev, pipe, &tvblank, DRM_CALLED_FROM_VBLIRQ);
>  
>  	/* Compute time difference to timestamp of last vblank */
>  	diff_ns = timeval_to_ns(&tvblank) -
> -		  timeval_to_ns(&vblanktimestamp(dev, crtc, vblcount));
> +		  timeval_to_ns(&vblanktimestamp(dev, pipe, vblcount));
>  
>  	/* Update vblank timestamp and count if at least
>  	 * DRM_REDUNDANT_VBLIRQ_THRESH_NS nanoseconds
> @@ -1767,15 +1769,15 @@ bool drm_handle_vblank(struct drm_device *dev, int crtc)
>  	 * ignore those for accounting.
>  	 */
>  	if (abs64(diff_ns) > DRM_REDUNDANT_VBLIRQ_THRESH_NS)
> -		store_vblank(dev, crtc, 1, &tvblank);
> +		store_vblank(dev, pipe, 1, &tvblank);
>  	else
> -		DRM_DEBUG("crtc %d: Redundant vblirq ignored. diff_ns = %d\n",
> -			  crtc, (int) diff_ns);
> +		DRM_DEBUG("crtc %u: Redundant vblirq ignored. diff_ns = %d\n",
> +			  pipe, (int) diff_ns);
>  
>  	spin_unlock(&dev->vblank_time_lock);
>  
>  	wake_up(&vblank->queue);
> -	drm_handle_vblank_events(dev, crtc);
> +	drm_handle_vblank_events(dev, pipe);
>  
>  	spin_unlock_irqrestore(&dev->event_lock, irqflags);
>  
> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index 5908848d86b3..020afa343dff 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -681,7 +681,7 @@ struct drm_minor {
>  
>  struct drm_pending_vblank_event {
>  	struct drm_pending_event base;
> -	int pipe;
> +	unsigned int pipe;
>  	struct drm_event_vblank event;
>  };
>  
> @@ -700,7 +700,7 @@ struct drm_vblank_crtc {
>  					/* for wraparound handling */
>  	u32 last_wait;			/* Last vblank seqno waited per CRTC */
>  	unsigned int inmodeset;		/* Display driver is setting mode */
> -	int crtc;			/* crtc index */
> +	unsigned int pipe;		/* crtc index */
>  	bool enabled;			/* so we don't call enable more than
>  					   once per disable */
>  };
> @@ -920,34 +920,34 @@ void drm_clflush_virt_range(void *addr, unsigned long length);
>  extern int drm_irq_install(struct drm_device *dev, int irq);
>  extern int drm_irq_uninstall(struct drm_device *dev);
>  
> -extern int drm_vblank_init(struct drm_device *dev, int num_crtcs);
> +extern int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
>  extern int drm_wait_vblank(struct drm_device *dev, void *data,
>  			   struct drm_file *filp);
> -extern u32 drm_vblank_count(struct drm_device *dev, int crtc);
> +extern u32 drm_vblank_count(struct drm_device *dev, int pipe);
>  extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc);
> -extern u32 drm_vblank_count_and_time(struct drm_device *dev, int crtc,
> +extern u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
>  				     struct timeval *vblanktime);
> -extern void drm_send_vblank_event(struct drm_device *dev, int crtc,
> -				     struct drm_pending_vblank_event *e);
> +extern void drm_send_vblank_event(struct drm_device *dev, unsigned int pipe,
> +				  struct drm_pending_vblank_event *e);
>  extern void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
>  				       struct drm_pending_vblank_event *e);
> -extern bool drm_handle_vblank(struct drm_device *dev, int crtc);
> +extern bool drm_handle_vblank(struct drm_device *dev, unsigned int pipe);
>  extern bool drm_crtc_handle_vblank(struct drm_crtc *crtc);
> -extern int drm_vblank_get(struct drm_device *dev, int crtc);
> -extern void drm_vblank_put(struct drm_device *dev, int crtc);
> +extern int drm_vblank_get(struct drm_device *dev, unsigned int pipe);
> +extern void drm_vblank_put(struct drm_device *dev, unsigned int pipe);
>  extern int drm_crtc_vblank_get(struct drm_crtc *crtc);
>  extern void drm_crtc_vblank_put(struct drm_crtc *crtc);
> -extern void drm_wait_one_vblank(struct drm_device *dev, int crtc);
> +extern void drm_wait_one_vblank(struct drm_device *dev, unsigned int pipe);
>  extern void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
> -extern void drm_vblank_off(struct drm_device *dev, int crtc);
> -extern void drm_vblank_on(struct drm_device *dev, int crtc);
> +extern void drm_vblank_off(struct drm_device *dev, unsigned int pipe);
> +extern void drm_vblank_on(struct drm_device *dev, unsigned int pipe);
>  extern void drm_crtc_vblank_off(struct drm_crtc *crtc);
>  extern void drm_crtc_vblank_reset(struct drm_crtc *crtc);
>  extern void drm_crtc_vblank_on(struct drm_crtc *crtc);
>  extern void drm_vblank_cleanup(struct drm_device *dev);
>  
>  extern int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
> -						 int crtc, int *max_error,
> +						 unsigned int pipe, int *max_error,
>  						 struct timeval *vblank_time,
>  						 unsigned flags,
>  						 const struct drm_crtc *refcrtc,
> @@ -968,8 +968,8 @@ static inline wait_queue_head_t *drm_crtc_vblank_waitqueue(struct drm_crtc *crtc
>  }
>  
>  /* Modesetting support */
> -extern void drm_vblank_pre_modeset(struct drm_device *dev, int crtc);
> -extern void drm_vblank_post_modeset(struct drm_device *dev, int crtc);
> +extern void drm_vblank_pre_modeset(struct drm_device *dev, unsigned int pipe);
> +extern void drm_vblank_post_modeset(struct drm_device *dev, unsigned int pipe);
>  
>  				/* Stub support (drm_stub.h) */
>  extern struct drm_master *drm_master_get(struct drm_master *master);
> -- 
> 2.4.5
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-08-12 15:32 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-12 15:00 [PATCH 01/13] drm/gma500: Sanity-check pipe index Thierry Reding
2015-08-12 15:00 ` [PATCH 02/13] drm/irq: Remove negative CRTC index special-case Thierry Reding
2015-08-12 15:28   ` Daniel Vetter
2015-08-12 15:00 ` [PATCH 03/13] drm/bochs: Store correct CRTC index in events Thierry Reding
2015-08-12 15:26   ` Daniel Vetter
2015-08-12 15:00 ` [PATCH 04/13] drm/imx: Make pipe number unsigned Thierry Reding
2015-08-12 15:24   ` Daniel Vetter
2015-08-13  9:05     ` Thierry Reding
2015-08-12 15:00 ` [PATCH 05/13] drm/imx: Store correct CRTC index in events Thierry Reding
2015-08-12 15:00 ` [PATCH 06/13] drm/rockchip: " Thierry Reding
2015-08-12 15:00 ` [PATCH 07/13] drm/sti: " Thierry Reding
2015-08-12 15:26   ` Benjamin Gaignard
2015-08-13  9:06     ` Thierry Reding
2015-08-12 15:00 ` [PATCH 08/13] drm/irq: Check for valid VBLANK before dereference Thierry Reding
2015-08-12 15:40   ` Daniel Vetter
2015-08-13  9:20     ` Thierry Reding
2015-08-13 13:05       ` Daniel Vetter
2015-08-12 15:00 ` [PATCH 09/13] drm/irq: Make pipe unsigned and name consistent Thierry Reding
2015-08-12 15:32   ` Daniel Vetter [this message]
2015-10-30 18:38     ` Ilia Mirkin
2015-10-30 18:38       ` Ilia Mirkin
2015-08-13  9:38   ` [PATCH] drm/irq: More pipe/crtc consistency cleanups Thierry Reding
2015-08-13 13:02     ` Daniel Vetter
2015-08-12 15:00 ` [PATCH 10/13] drm/irq: Add drm_crtc_vblank_count_and_time() Thierry Reding
2015-08-12 15:35   ` Daniel Vetter
2015-08-13  9:12     ` Thierry Reding
2015-08-13 13:04       ` Daniel Vetter
2015-08-12 15:00 ` [PATCH 11/13] drm/irq: Document return values more consistently Thierry Reding
2015-08-12 15:00 ` [PATCH 12/13] drm/armada: Use drm_crtc_vblank_*() API Thierry Reding
2015-08-14 13:59   ` Russell King - ARM Linux
2015-08-14 14:24     ` Thierry Reding
2015-08-12 15:00 ` [PATCH 13/13] drm/atomic: Use KMS VBLANK API Thierry Reding
2015-08-12 15:41   ` Daniel Vetter
2015-08-12 15:42   ` Daniel Vetter
2015-08-13 10:51 ` [PATCH 01/13] drm/gma500: Sanity-check pipe index Patrik Jakobsson
  -- strict thread matches above, loose matches on Subject: below --
2014-12-16 16:53 [PATCH 01/13] drm/irq: Remove negative CRTC index special-case Thierry Reding
2014-12-16 16:53 ` [PATCH 09/13] drm/irq: Make pipe unsigned and name consistent Thierry Reding
2014-12-16 17:53   ` Daniel Vetter

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=20150812153214.GL17734@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=thierry.reding@gmail.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.