dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
@ 2016-01-04 15:44 Thierry Reding
  2016-01-04 16:45 ` Alex Deucher
  0 siblings, 1 reply; 7+ messages in thread
From: Thierry Reding @ 2016-01-04 15:44 UTC (permalink / raw)
  To: Christian König, Alex Deucher; +Cc: dri-devel

From: Thierry Reding <treding@nvidia.com>

Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
updated the prototype of this function but not the implementation. This
wasn't noticed even through compile tests because the prototype is part
of the source file that uses it and hence the compiler won't know the
prototype when it compiles the implementation.

The right thing would've been to move the prototype to a header that's
included in radeon_kms.c so that the implementation signature could be
checked against it, but the closest thing would've been radeon_drv.h
and including that results in a lot of build errors, so we'll leave it
as is for now.

Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Changes in v2:
- remove unnecessary check for unsigned int < 0

 drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 2e8b114272dd..74068bf0b8bb 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
  * radeon_get_vblank_counter_kms - get frame count
  *
  * @dev: drm dev pointer
- * @crtc: crtc to get the frame count from
+ * @pipe: crtc to get the frame count from
  *
  * Gets the frame count on the requested crtc (all asics).
  * Returns frame count on success, -EINVAL on failure.
  */
-u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
+u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
 {
 	int vpos, hpos, stat;
 	u32 count;
 	struct radeon_device *rdev = dev->dev_private;
 
-	if (crtc < 0 || crtc >= rdev->num_crtc) {
-		DRM_ERROR("Invalid crtc %d\n", crtc);
+	if (pipe >= rdev->num_crtc) {
+		DRM_ERROR("Invalid crtc %u\n", pipe);
 		return -EINVAL;
 	}
 
@@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
 	 * and start of vsync, so vpos >= 0 means to bump the hw frame counter
 	 * result by 1 to give the proper appearance to caller.
 	 */
-	if (rdev->mode_info.crtcs[crtc]) {
+	if (rdev->mode_info.crtcs[pipe]) {
 		/* Repeat readout if needed to provide stable result if
 		 * we cross start of vsync during the queries.
 		 */
 		do {
-			count = radeon_get_vblank_counter(rdev, crtc);
+			count = radeon_get_vblank_counter(rdev, pipe);
 			/* Ask radeon_get_crtc_scanoutpos to return vpos as
 			 * distance to start of vblank, instead of regular
 			 * vertical scanout pos.
 			 */
 			stat = radeon_get_crtc_scanoutpos(
-				dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
+				dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
 				&vpos, &hpos, NULL, NULL,
-				&rdev->mode_info.crtcs[crtc]->base.hwmode);
-		} while (count != radeon_get_vblank_counter(rdev, crtc));
+				&rdev->mode_info.crtcs[pipe]->base.hwmode);
+		} while (count != radeon_get_vblank_counter(rdev, pipe));
 
 		if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) !=
 		    (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
 			DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
 		}
 		else {
-			DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
-				      crtc, vpos);
+			DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
+				      pipe, vpos);
 
 			/* Bump counter if we are at >= leading edge of vblank,
 			 * but before vsync where vpos would turn negative and
@@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
 	}
 	else {
 	    /* Fallback to use value as is. */
-	    count = radeon_get_vblank_counter(rdev, crtc);
+	    count = radeon_get_vblank_counter(rdev, pipe);
 	    DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
 	}
 
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
  2016-01-04 15:44 [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms() Thierry Reding
@ 2016-01-04 16:45 ` Alex Deucher
  2016-01-04 17:19   ` Thierry Reding
  0 siblings, 1 reply; 7+ messages in thread
From: Alex Deucher @ 2016-01-04 16:45 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Alex Deucher, Christian König, Maling list - DRI developers

On Mon, Jan 4, 2016 at 10:44 AM, Thierry Reding
<thierry.reding@gmail.com> wrote:
> From: Thierry Reding <treding@nvidia.com>
>
> Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
> updated the prototype of this function but not the implementation. This
> wasn't noticed even through compile tests because the prototype is part
> of the source file that uses it and hence the compiler won't know the
> prototype when it compiles the implementation.
>
> The right thing would've been to move the prototype to a header that's
> included in radeon_kms.c so that the implementation signature could be
> checked against it, but the closest thing would've been radeon_drv.h
> and including that results in a lot of build errors, so we'll leave it
> as is for now.
>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
> Changes in v2:
> - remove unnecessary check for unsigned int < 0

I had applied your previous patch before Michel's feedback so it's
already in drm-next, any change you could spin a new patch to just
drop the < 0 check?

Thanks,

Alex

>
>  drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
> index 2e8b114272dd..74068bf0b8bb 100644
> --- a/drivers/gpu/drm/radeon/radeon_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
> @@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
>   * radeon_get_vblank_counter_kms - get frame count
>   *
>   * @dev: drm dev pointer
> - * @crtc: crtc to get the frame count from
> + * @pipe: crtc to get the frame count from
>   *
>   * Gets the frame count on the requested crtc (all asics).
>   * Returns frame count on success, -EINVAL on failure.
>   */
> -u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
> +u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
>  {
>         int vpos, hpos, stat;
>         u32 count;
>         struct radeon_device *rdev = dev->dev_private;
>
> -       if (crtc < 0 || crtc >= rdev->num_crtc) {
> -               DRM_ERROR("Invalid crtc %d\n", crtc);
> +       if (pipe >= rdev->num_crtc) {
> +               DRM_ERROR("Invalid crtc %u\n", pipe);
>                 return -EINVAL;
>         }
>
> @@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
>          * and start of vsync, so vpos >= 0 means to bump the hw frame counter
>          * result by 1 to give the proper appearance to caller.
>          */
> -       if (rdev->mode_info.crtcs[crtc]) {
> +       if (rdev->mode_info.crtcs[pipe]) {
>                 /* Repeat readout if needed to provide stable result if
>                  * we cross start of vsync during the queries.
>                  */
>                 do {
> -                       count = radeon_get_vblank_counter(rdev, crtc);
> +                       count = radeon_get_vblank_counter(rdev, pipe);
>                         /* Ask radeon_get_crtc_scanoutpos to return vpos as
>                          * distance to start of vblank, instead of regular
>                          * vertical scanout pos.
>                          */
>                         stat = radeon_get_crtc_scanoutpos(
> -                               dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
> +                               dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
>                                 &vpos, &hpos, NULL, NULL,
> -                               &rdev->mode_info.crtcs[crtc]->base.hwmode);
> -               } while (count != radeon_get_vblank_counter(rdev, crtc));
> +                               &rdev->mode_info.crtcs[pipe]->base.hwmode);
> +               } while (count != radeon_get_vblank_counter(rdev, pipe));
>
>                 if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) !=
>                     (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
>                         DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
>                 }
>                 else {
> -                       DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
> -                                     crtc, vpos);
> +                       DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
> +                                     pipe, vpos);
>
>                         /* Bump counter if we are at >= leading edge of vblank,
>                          * but before vsync where vpos would turn negative and
> @@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
>         }
>         else {
>             /* Fallback to use value as is. */
> -           count = radeon_get_vblank_counter(rdev, crtc);
> +           count = radeon_get_vblank_counter(rdev, pipe);
>             DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
>         }
>
> --
> 2.5.0
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
  2016-01-04 16:45 ` Alex Deucher
@ 2016-01-04 17:19   ` Thierry Reding
  0 siblings, 0 replies; 7+ messages in thread
From: Thierry Reding @ 2016-01-04 17:19 UTC (permalink / raw)
  To: Alex Deucher
  Cc: Alex Deucher, Christian König, Maling list - DRI developers


[-- Attachment #1.1: Type: text/plain, Size: 1318 bytes --]

On Mon, Jan 04, 2016 at 11:45:05AM -0500, Alex Deucher wrote:
> On Mon, Jan 4, 2016 at 10:44 AM, Thierry Reding
> <thierry.reding@gmail.com> wrote:
> > From: Thierry Reding <treding@nvidia.com>
> >
> > Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
> > updated the prototype of this function but not the implementation. This
> > wasn't noticed even through compile tests because the prototype is part
> > of the source file that uses it and hence the compiler won't know the
> > prototype when it compiles the implementation.
> >
> > The right thing would've been to move the prototype to a header that's
> > included in radeon_kms.c so that the implementation signature could be
> > checked against it, but the closest thing would've been radeon_drv.h
> > and including that results in a lot of build errors, so we'll leave it
> > as is for now.
> >
> > Cc: Christian König <christian.koenig@amd.com>
> > Cc: Alex Deucher <alexander.deucher@amd.com>
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> > ---
> > Changes in v2:
> > - remove unnecessary check for unsigned int < 0
> 
> I had applied your previous patch before Michel's feedback so it's
> already in drm-next, any change you could spin a new patch to just
> drop the < 0 check?

Done.

Thierry

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
  2015-12-17  6:35 ` Michel Dänzer
@ 2016-01-04 11:28   ` Thierry Reding
  0 siblings, 0 replies; 7+ messages in thread
From: Thierry Reding @ 2016-01-04 11:28 UTC (permalink / raw)
  To: Michel Dänzer; +Cc: Alex Deucher, Christian König, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 862 bytes --]

On Thu, Dec 17, 2015 at 03:35:50PM +0900, Michel Dänzer wrote:
> On 16.12.2015 23:31, Thierry Reding wrote:
> > 
> > -	if (crtc < 0 || crtc >= rdev->num_crtc) {
> > -		DRM_ERROR("Invalid crtc %d\n", crtc);
> > +	if (pipe < 0 || pipe >= rdev->num_crtc) {
> > +		DRM_ERROR("Invalid crtc %u\n", pipe);
> 
> Does it still make sense to test for < 0? Doesn't that generate a
> compiler warning?

I didn't see a compiler warning in my build tests, but you're right,
it's not necessary to check for that because it can't be true. I'll
respin with that fixed up.

> Also, I don't really get the point of the crtc => pipe rename here...

This is primarily for consistency. That way we can reserve "pipe" for
the unsigned integers that denote the DRM index of the CRTC, and keep
"crtc" for cases where we deal with struct drm_crtc objects.

Thierry

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
  2015-12-16 14:31 Thierry Reding
  2015-12-16 14:36 ` Christian König
@ 2015-12-17  6:35 ` Michel Dänzer
  2016-01-04 11:28   ` Thierry Reding
  1 sibling, 1 reply; 7+ messages in thread
From: Michel Dänzer @ 2015-12-17  6:35 UTC (permalink / raw)
  To: Thierry Reding, Alex Deucher, Christian König; +Cc: dri-devel

On 16.12.2015 23:31, Thierry Reding wrote:
> 
> -	if (crtc < 0 || crtc >= rdev->num_crtc) {
> -		DRM_ERROR("Invalid crtc %d\n", crtc);
> +	if (pipe < 0 || pipe >= rdev->num_crtc) {
> +		DRM_ERROR("Invalid crtc %u\n", pipe);

Does it still make sense to test for < 0? Doesn't that generate a
compiler warning?


Also, I don't really get the point of the crtc => pipe rename here...


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
  2015-12-16 14:31 Thierry Reding
@ 2015-12-16 14:36 ` Christian König
  2015-12-17  6:35 ` Michel Dänzer
  1 sibling, 0 replies; 7+ messages in thread
From: Christian König @ 2015-12-16 14:36 UTC (permalink / raw)
  To: Thierry Reding, Alex Deucher; +Cc: dri-devel

On 16.12.2015 15:31, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
>
> Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
> updated the prototype of this function but not the implementation. This
> wasn't noticed even through compile tests because the prototype is part
> of the source file that uses it and hence the compiler won't know the
> prototype when it compiles the implementation.
>
> The right thing would've been to move the prototype to a header that's
> included in radeon_kms.c so that the implementation signature could be
> checked against it, but the closest thing would've been radeon_drv.h
> and including that results in a lot of build errors, so we'll leave it
> as is for now.

Yeah, that's because of the old UMS mess. We could probably clean that 
up now.

>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Thierry Reding <treding@nvidia.com>

Anyway patch is Reviewed-by: Christian König <christian.koenig@amd.com>

Regards,
Christian.

> ---
> Note that this doesn't really need to go into stable because the
> generated code should be the same.
>
>   drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
>   1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
> index d290a8a09036..4fab44e0f36b 100644
> --- a/drivers/gpu/drm/radeon/radeon_kms.c
> +++ b/drivers/gpu/drm/radeon/radeon_kms.c
> @@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
>    * radeon_get_vblank_counter_kms - get frame count
>    *
>    * @dev: drm dev pointer
> - * @crtc: crtc to get the frame count from
> + * @pipe: crtc to get the frame count from
>    *
>    * Gets the frame count on the requested crtc (all asics).
>    * Returns frame count on success, -EINVAL on failure.
>    */
> -u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
> +u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
>   {
>   	int vpos, hpos, stat;
>   	u32 count;
>   	struct radeon_device *rdev = dev->dev_private;
>   
> -	if (crtc < 0 || crtc >= rdev->num_crtc) {
> -		DRM_ERROR("Invalid crtc %d\n", crtc);
> +	if (pipe < 0 || pipe >= rdev->num_crtc) {
> +		DRM_ERROR("Invalid crtc %u\n", pipe);
>   		return -EINVAL;
>   	}
>   
> @@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
>   	 * and start of vsync, so vpos >= 0 means to bump the hw frame counter
>   	 * result by 1 to give the proper appearance to caller.
>   	 */
> -	if (rdev->mode_info.crtcs[crtc]) {
> +	if (rdev->mode_info.crtcs[pipe]) {
>   		/* Repeat readout if needed to provide stable result if
>   		 * we cross start of vsync during the queries.
>   		 */
>   		do {
> -			count = radeon_get_vblank_counter(rdev, crtc);
> +			count = radeon_get_vblank_counter(rdev, pipe);
>   			/* Ask radeon_get_crtc_scanoutpos to return vpos as
>   			 * distance to start of vblank, instead of regular
>   			 * vertical scanout pos.
>   			 */
>   			stat = radeon_get_crtc_scanoutpos(
> -				dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
> +				dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
>   				&vpos, &hpos, NULL, NULL,
> -				&rdev->mode_info.crtcs[crtc]->base.hwmode);
> -		} while (count != radeon_get_vblank_counter(rdev, crtc));
> +				&rdev->mode_info.crtcs[pipe]->base.hwmode);
> +		} while (count != radeon_get_vblank_counter(rdev, pipe));
>   
>   		if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) !=
>   		    (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
>   			DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
>   		}
>   		else {
> -			DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
> -				      crtc, vpos);
> +			DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
> +				      pipe, vpos);
>   
>   			/* Bump counter if we are at >= leading edge of vblank,
>   			 * but before vsync where vpos would turn negative and
> @@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
>   	}
>   	else {
>   	    /* Fallback to use value as is. */
> -	    count = radeon_get_vblank_counter(rdev, crtc);
> +	    count = radeon_get_vblank_counter(rdev, pipe);
>   	    DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
>   	}
>   

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms()
@ 2015-12-16 14:31 Thierry Reding
  2015-12-16 14:36 ` Christian König
  2015-12-17  6:35 ` Michel Dänzer
  0 siblings, 2 replies; 7+ messages in thread
From: Thierry Reding @ 2015-12-16 14:31 UTC (permalink / raw)
  To: Alex Deucher, Christian König; +Cc: dri-devel

From: Thierry Reding <treding@nvidia.com>

Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
updated the prototype of this function but not the implementation. This
wasn't noticed even through compile tests because the prototype is part
of the source file that uses it and hence the compiler won't know the
prototype when it compiles the implementation.

The right thing would've been to move the prototype to a header that's
included in radeon_kms.c so that the implementation signature could be
checked against it, but the closest thing would've been radeon_drv.h
and including that results in a lot of build errors, so we'll leave it
as is for now.

Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
---
Note that this doesn't really need to go into stable because the
generated code should be the same.

 drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index d290a8a09036..4fab44e0f36b 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
  * radeon_get_vblank_counter_kms - get frame count
  *
  * @dev: drm dev pointer
- * @crtc: crtc to get the frame count from
+ * @pipe: crtc to get the frame count from
  *
  * Gets the frame count on the requested crtc (all asics).
  * Returns frame count on success, -EINVAL on failure.
  */
-u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
+u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
 {
 	int vpos, hpos, stat;
 	u32 count;
 	struct radeon_device *rdev = dev->dev_private;
 
-	if (crtc < 0 || crtc >= rdev->num_crtc) {
-		DRM_ERROR("Invalid crtc %d\n", crtc);
+	if (pipe < 0 || pipe >= rdev->num_crtc) {
+		DRM_ERROR("Invalid crtc %u\n", pipe);
 		return -EINVAL;
 	}
 
@@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
 	 * and start of vsync, so vpos >= 0 means to bump the hw frame counter
 	 * result by 1 to give the proper appearance to caller.
 	 */
-	if (rdev->mode_info.crtcs[crtc]) {
+	if (rdev->mode_info.crtcs[pipe]) {
 		/* Repeat readout if needed to provide stable result if
 		 * we cross start of vsync during the queries.
 		 */
 		do {
-			count = radeon_get_vblank_counter(rdev, crtc);
+			count = radeon_get_vblank_counter(rdev, pipe);
 			/* Ask radeon_get_crtc_scanoutpos to return vpos as
 			 * distance to start of vblank, instead of regular
 			 * vertical scanout pos.
 			 */
 			stat = radeon_get_crtc_scanoutpos(
-				dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
+				dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
 				&vpos, &hpos, NULL, NULL,
-				&rdev->mode_info.crtcs[crtc]->base.hwmode);
-		} while (count != radeon_get_vblank_counter(rdev, crtc));
+				&rdev->mode_info.crtcs[pipe]->base.hwmode);
+		} while (count != radeon_get_vblank_counter(rdev, pipe));
 
 		if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) !=
 		    (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
 			DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
 		}
 		else {
-			DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
-				      crtc, vpos);
+			DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
+				      pipe, vpos);
 
 			/* Bump counter if we are at >= leading edge of vblank,
 			 * but before vsync where vpos would turn negative and
@@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
 	}
 	else {
 	    /* Fallback to use value as is. */
-	    count = radeon_get_vblank_counter(rdev, crtc);
+	    count = radeon_get_vblank_counter(rdev, pipe);
 	    DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
 	}
 
-- 
2.5.0

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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-01-04 17:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-04 15:44 [PATCH] drm/radeon: Update radeon_get_vblank_counter_kms() Thierry Reding
2016-01-04 16:45 ` Alex Deucher
2016-01-04 17:19   ` Thierry Reding
  -- strict thread matches above, loose matches on Subject: below --
2015-12-16 14:31 Thierry Reding
2015-12-16 14:36 ` Christian König
2015-12-17  6:35 ` Michel Dänzer
2016-01-04 11:28   ` Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).