Commit 7da903ef authored by Ville Syrjälä's avatar Ville Syrjälä

drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos()

Rather than using crtc->hwmode, just pass the relevant mode to
drm_calc_vbltimestamp_from_scanoutpos(). This removes the last hwmode
usage from core drm.

Reviewed-by: mario.kleiner.de@gmail.com
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
parent 545cdd55
...@@ -522,6 +522,7 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants); ...@@ -522,6 +522,7 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
* 0 = Default. * 0 = Default.
* DRM_CALLED_FROM_VBLIRQ = If function is called from vbl irq handler. * DRM_CALLED_FROM_VBLIRQ = If function is called from vbl irq handler.
* @refcrtc: drm_crtc* of crtc which defines scanout timing. * @refcrtc: drm_crtc* of crtc which defines scanout timing.
* @mode: mode which defines the scanout timings
* *
* Returns negative value on error, failure or if not supported in current * Returns negative value on error, failure or if not supported in current
* video mode: * video mode:
...@@ -541,11 +542,11 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc, ...@@ -541,11 +542,11 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
int *max_error, int *max_error,
struct timeval *vblank_time, struct timeval *vblank_time,
unsigned flags, unsigned flags,
struct drm_crtc *refcrtc) const struct drm_crtc *refcrtc,
const struct drm_display_mode *mode)
{ {
ktime_t stime, etime, mono_time_offset; ktime_t stime, etime, mono_time_offset;
struct timeval tv_etime; struct timeval tv_etime;
struct drm_display_mode *mode;
int vbl_status, vtotal, vdisplay; int vbl_status, vtotal, vdisplay;
int vpos, hpos, i; int vpos, hpos, i;
s64 framedur_ns, linedur_ns, pixeldur_ns, delta_ns, duration_ns; s64 framedur_ns, linedur_ns, pixeldur_ns, delta_ns, duration_ns;
...@@ -562,7 +563,6 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc, ...@@ -562,7 +563,6 @@ int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, int crtc,
return -EIO; return -EIO;
} }
mode = &refcrtc->hwmode;
vtotal = mode->crtc_vtotal; vtotal = mode->crtc_vtotal;
vdisplay = mode->crtc_vdisplay; vdisplay = mode->crtc_vdisplay;
......
...@@ -809,7 +809,8 @@ static int i915_get_vblank_timestamp(struct drm_device *dev, int pipe, ...@@ -809,7 +809,8 @@ static int i915_get_vblank_timestamp(struct drm_device *dev, int pipe,
/* Helper routine in DRM core does all the work: */ /* Helper routine in DRM core does all the work: */
return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error, return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error,
vblank_time, flags, vblank_time, flags,
crtc); crtc,
&to_intel_crtc(crtc)->config.adjusted_mode);
} }
static bool intel_hpd_irq_event(struct drm_device *dev, static bool intel_hpd_irq_event(struct drm_device *dev,
......
...@@ -712,7 +712,7 @@ int radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc, ...@@ -712,7 +712,7 @@ int radeon_get_vblank_timestamp_kms(struct drm_device *dev, int crtc,
/* Helper routine in DRM core does all the work: */ /* Helper routine in DRM core does all the work: */
return drm_calc_vbltimestamp_from_scanoutpos(dev, crtc, max_error, return drm_calc_vbltimestamp_from_scanoutpos(dev, crtc, max_error,
vblank_time, flags, vblank_time, flags,
drmcrtc); drmcrtc, &drmcrtc->hwmode);
} }
#define KMS_INVALID_IOCTL(name) \ #define KMS_INVALID_IOCTL(name) \
......
...@@ -1401,7 +1401,8 @@ extern int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev, ...@@ -1401,7 +1401,8 @@ extern int drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
int crtc, int *max_error, int crtc, int *max_error,
struct timeval *vblank_time, struct timeval *vblank_time,
unsigned flags, unsigned flags,
struct drm_crtc *refcrtc); const struct drm_crtc *refcrtc,
const struct drm_display_mode *mode);
extern void drm_calc_timestamping_constants(struct drm_crtc *crtc, extern void drm_calc_timestamping_constants(struct drm_crtc *crtc,
const struct drm_display_mode *mode); const struct drm_display_mode *mode);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment