drm/i915/sdvo: Pick the TV dotclock from adjusted_mode
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 5 Jul 2023 20:21:15 +0000 (23:21 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 24 Aug 2023 12:24:31 +0000 (15:24 +0300)
port_clock is what the encoder/dpll code is supposed to calculate,
it is not the input clock. Use the dotclock as the target we're
trying to achieve instead.

TODO: the SDVO TV clocking is a mess atm and needs further work

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230705202122.17915-7-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_sdvo.c

index e902d1f0dff22525cd4ab568e2014865064558a4..0fc403f4be2d1769b500a7582b3342592a8f824f 100644 (file)
@@ -1272,7 +1272,7 @@ intel_sdvo_get_preferred_input_mode(struct intel_sdvo *intel_sdvo,
 static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
 {
        struct drm_i915_private *dev_priv = to_i915(pipe_config->uapi.crtc->dev);
-       unsigned dotclock = pipe_config->port_clock;
+       unsigned int dotclock = pipe_config->hw.adjusted_mode.crtc_clock;
        struct dpll *clock = &pipe_config->dpll;
 
        /*