mirror of
https://github.com/torvalds/linux.git
synced 2026-08-01 20:22:08 +02:00
drm/i915/sdvo: Fail gracefully if the TV dotclock is out of range
Instead of warning and continuing with bogus state when the requested dotclock isn't acceptable just print some debug spew and fail gracefully. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230705202122.17915-8-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
d320aaaa2c
commit
e83d12e092
|
|
@ -1269,7 +1269,7 @@ intel_sdvo_get_preferred_input_mode(struct intel_sdvo *intel_sdvo,
|
|||
return true;
|
||||
}
|
||||
|
||||
static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
|
||||
static int 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 int dotclock = pipe_config->hw.adjusted_mode.crtc_clock;
|
||||
|
|
@ -1292,11 +1292,14 @@ static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
|
|||
clock->m1 = 12;
|
||||
clock->m2 = 8;
|
||||
} else {
|
||||
drm_WARN(&dev_priv->drm, 1,
|
||||
"SDVO TV clock out of range: %i\n", dotclock);
|
||||
drm_dbg_kms(&dev_priv->drm,
|
||||
"SDVO TV clock out of range: %i\n", dotclock);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pipe_config->clock_set = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool intel_has_hdmi_sink(struct intel_sdvo_connector *intel_sdvo_connector,
|
||||
|
|
@ -1414,8 +1417,13 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,
|
|||
conn_state);
|
||||
|
||||
/* Clock computation needs to happen after pixel multiplier. */
|
||||
if (IS_TV(intel_sdvo_connector))
|
||||
i9xx_adjust_sdvo_tv_clock(pipe_config);
|
||||
if (IS_TV(intel_sdvo_connector)) {
|
||||
int ret;
|
||||
|
||||
ret = i9xx_adjust_sdvo_tv_clock(pipe_config);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (conn_state->picture_aspect_ratio)
|
||||
adjusted_mode->picture_aspect_ratio =
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user