diff mbox

[1/2] fixup! drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps

Message ID 1443090208-15977-2-git-send-email-thierry.reding@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thierry Reding Sept. 24, 2015, 10:23 a.m. UTC
From: Thierry Reding <treding@nvidia.com>

---
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 11 ++++++-----
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h    |  3 ++-
 2 files changed, 8 insertions(+), 6 deletions(-)

Comments

Ville Syrjälä Sept. 24, 2015, 9 p.m. UTC | #1
On Thu, Sep 24, 2015 at 12:23:27PM +0200, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 

Hmm. I guess I wrote the patch before amdgpu got added.

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 11 ++++++-----
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h    |  3 ++-
>  2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> index e3d70772b531..9b34a3410c32 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> @@ -745,7 +745,8 @@ bool amdgpu_crtc_scaling_mode_fixup(struct drm_crtc *crtc,
>   *
>   */
>  int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int flags,
> -			       int *vpos, int *hpos, ktime_t *stime, ktime_t *etime)
> +			       int *vpos, int *hpos, ktime_t *stime, ktime_t *etime,
> +			       const struct drm_display_mode *mode)
>  {
>  	u32 vbl = 0, position = 0;
>  	int vbl_start, vbl_end, vtotal, ret = 0;
> @@ -781,7 +782,7 @@ int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
>  	}
>  	else {
>  		/* No: Fake something reasonable which gives at least ok results. */
> -		vbl_start = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay;
> +		vbl_start = mode->crtc_vdisplay;
>  		vbl_end = 0;
>  	}
>  
> @@ -797,7 +798,7 @@ int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
>  
>  	/* Inside "upper part" of vblank area? Apply corrective offset if so: */
>  	if (in_vbl && (*vpos >= vbl_start)) {
> -		vtotal = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal;
> +		vtotal = mode->crtc_vtotal;
>  		*vpos = *vpos - vtotal;
>  	}
>  
> @@ -819,8 +820,8 @@ int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
>  	 * We only do this if DRM_CALLED_FROM_VBLIRQ.
>  	 */
>  	if ((flags & DRM_CALLED_FROM_VBLIRQ) && !in_vbl) {
> -		vbl_start = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay;
> -		vtotal = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal;
> +		vbl_start = mode->crtc_vdisplay;
> +		vtotal = mode->crtc_vtotal;
>  
>  		if (vbl_start - *vpos < vtotal / 100) {
>  			*vpos -= vtotal;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> index 64efe5b52e65..2b03425f9740 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
> @@ -543,7 +543,8 @@ void amdgpu_encoder_set_active_device(struct drm_encoder *encoder);
>  int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc,
>  				      unsigned int flags,
>  				      int *vpos, int *hpos, ktime_t *stime,
> -				      ktime_t *etime);
> +				      ktime_t *etime,
> +				      const struct drm_display_mode *mode);
>  
>  int amdgpu_framebuffer_init(struct drm_device *dev,
>  			     struct amdgpu_framebuffer *rfb,
> -- 
> 2.5.0
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index e3d70772b531..9b34a3410c32 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -745,7 +745,8 @@  bool amdgpu_crtc_scaling_mode_fixup(struct drm_crtc *crtc,
  *
  */
 int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int flags,
-			       int *vpos, int *hpos, ktime_t *stime, ktime_t *etime)
+			       int *vpos, int *hpos, ktime_t *stime, ktime_t *etime,
+			       const struct drm_display_mode *mode)
 {
 	u32 vbl = 0, position = 0;
 	int vbl_start, vbl_end, vtotal, ret = 0;
@@ -781,7 +782,7 @@  int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
 	}
 	else {
 		/* No: Fake something reasonable which gives at least ok results. */
-		vbl_start = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay;
+		vbl_start = mode->crtc_vdisplay;
 		vbl_end = 0;
 	}
 
@@ -797,7 +798,7 @@  int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
 
 	/* Inside "upper part" of vblank area? Apply corrective offset if so: */
 	if (in_vbl && (*vpos >= vbl_start)) {
-		vtotal = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal;
+		vtotal = mode->crtc_vtotal;
 		*vpos = *vpos - vtotal;
 	}
 
@@ -819,8 +820,8 @@  int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int fl
 	 * We only do this if DRM_CALLED_FROM_VBLIRQ.
 	 */
 	if ((flags & DRM_CALLED_FROM_VBLIRQ) && !in_vbl) {
-		vbl_start = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vdisplay;
-		vtotal = adev->mode_info.crtcs[crtc]->base.hwmode.crtc_vtotal;
+		vbl_start = mode->crtc_vdisplay;
+		vtotal = mode->crtc_vtotal;
 
 		if (vbl_start - *vpos < vtotal / 100) {
 			*vpos -= vtotal;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index 64efe5b52e65..2b03425f9740 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -543,7 +543,8 @@  void amdgpu_encoder_set_active_device(struct drm_encoder *encoder);
 int amdgpu_get_crtc_scanoutpos(struct drm_device *dev, int crtc,
 				      unsigned int flags,
 				      int *vpos, int *hpos, ktime_t *stime,
-				      ktime_t *etime);
+				      ktime_t *etime,
+				      const struct drm_display_mode *mode);
 
 int amdgpu_framebuffer_init(struct drm_device *dev,
 			     struct amdgpu_framebuffer *rfb,