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: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
parent
545cdd5510
commit
7da903ef04
|
@ -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,
|
||||||
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,
|
||||||
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,
|
||||||
/* 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,
|
||||||
/* 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,
|
||||||
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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue