提交 debded84 编写于 作者: V Ville Syrjälä

drm/i915: Try to fix CRT port clock limits

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: NVille Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1455738073-14502-7-git-send-email-ville.syrjala@linux.intel.comReviewed-by: NImre Deak <imre.deak@intel.com>
上级 8802e5b6
...@@ -218,18 +218,26 @@ intel_crt_mode_valid(struct drm_connector *connector, ...@@ -218,18 +218,26 @@ intel_crt_mode_valid(struct drm_connector *connector,
{ {
struct drm_device *dev = connector->dev; struct drm_device *dev = connector->dev;
int max_dotclk = to_i915(dev)->max_dotclk_freq; int max_dotclk = to_i915(dev)->max_dotclk_freq;
int max_clock;
int max_clock = 0;
if (mode->flags & DRM_MODE_FLAG_DBLSCAN) if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
return MODE_NO_DBLESCAN; return MODE_NO_DBLESCAN;
if (mode->clock < 25000) if (mode->clock < 25000)
return MODE_CLOCK_LOW; return MODE_CLOCK_LOW;
if (IS_GEN2(dev)) if (HAS_PCH_LPT(dev))
max_clock = 350000; max_clock = 180000;
else 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; max_clock = 400000;
else
max_clock = 350000;
if (mode->clock > max_clock) if (mode->clock > max_clock)
return MODE_CLOCK_HIGH; return MODE_CLOCK_HIGH;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册