drm/i915: Call drm_calc_timestamping_constants() earlier
Update the pixel/line/frame duration information when we switch to the new pipe config. This will keep the timestamping constants in better sync with the real hardware state. Reviewed-by: mario.kleiner.de@gmail.com Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
parent
4b4b9238a3
commit
c326c0a9c9
|
@ -9660,6 +9660,14 @@ static int __intel_set_mode(struct drm_crtc *crtc,
|
|||
/* mode_set/enable/disable functions rely on a correct pipe
|
||||
* config. */
|
||||
to_intel_crtc(crtc)->config = *pipe_config;
|
||||
|
||||
/*
|
||||
* Calculate and store various constants which
|
||||
* are later needed by vblank and swap-completion
|
||||
* timestamping. They are derived from true hwmode.
|
||||
*/
|
||||
drm_calc_timestamping_constants(crtc,
|
||||
&pipe_config->adjusted_mode);
|
||||
}
|
||||
|
||||
/* Only after disabling all output pipelines that will be changed can we
|
||||
|
@ -9683,15 +9691,6 @@ static int __intel_set_mode(struct drm_crtc *crtc,
|
|||
for_each_intel_crtc_masked(dev, prepare_pipes, intel_crtc)
|
||||
dev_priv->display.crtc_enable(&intel_crtc->base);
|
||||
|
||||
if (modeset_pipes) {
|
||||
/* Calculate and store various constants which
|
||||
* are later needed by vblank and swap-completion
|
||||
* timestamping. They are derived from true hwmode.
|
||||
*/
|
||||
drm_calc_timestamping_constants(crtc,
|
||||
&pipe_config->adjusted_mode);
|
||||
}
|
||||
|
||||
/* FIXME: add subpixel order */
|
||||
done:
|
||||
if (ret && crtc->enabled)
|
||||
|
|
Loading…
Reference in a new issue