[Intel-gfx] [PATCH 6/6] drm/i915: Try to fix CRT port clock limits
Imre Deak
imre.deak at intel.com
Fri Feb 19 14:58:22 UTC 2016
On ke, 2016-02-17 at 21:41 +0200, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> LPT/WPT-H are limited to max 180 MHz CRT dotclock. Most other
> platforms
> have a limit of 350 MHz. Supposedly gen3 and gen4 go up to 400 MHz.
>
> VLV is a bit special since the docs are poor. Supposedly the DAC
> would be good up to 355 MHz, but currently we limit the DPLL to
> 270 MHz, so we'll have to limit the port clock to the same unless
> we change the DPLL limits.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Reviewed-by: Imre Deak <imre.deak at intel.com>
> ---
> drivers/gpu/drm/i915/intel_crt.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c
> b/drivers/gpu/drm/i915/intel_crt.c
> index 08964bbd7c82..6bdd4f4310f1 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -220,18 +220,26 @@ intel_crt_mode_valid(struct drm_connector
> *connector,
> {
> struct drm_device *dev = connector->dev;
> int max_dotclk = to_i915(dev)->max_dotclk_freq;
> + int max_clock;
>
> - int max_clock = 0;
> if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
> return MODE_NO_DBLESCAN;
>
> if (mode->clock < 25000)
> return MODE_CLOCK_LOW;
>
> - if (IS_GEN2(dev))
> - max_clock = 350000;
> - else
> + if (HAS_PCH_LPT(dev))
> + max_clock = 180000;
> + else if (IS_VALLEYVIEW(dev))
> + /*
> + * 270 MHz due to current DPLL limits,
> + * DAC limit supposedly 355 MHz.
> + */
> + max_clock = 270000;
> + else if (IS_GEN3(dev) || IS_GEN4(dev))
> max_clock = 400000;
> + else
> + max_clock = 350000;
> if (mode->clock > max_clock)
> return MODE_CLOCK_HIGH;
>
More information about the Intel-gfx
mailing list