diff options
author | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2018-10-25 20:56:36 -0400 |
---|---|---|
committer | Joonas Lahtinen <joonas.lahtinen@linux.intel.com> | 2018-11-06 10:17:26 -0500 |
commit | 2c2f6e30d5f29691e3563d334ce208d3a1907f49 (patch) | |
tree | dc6f1d9772c8aa83a46bc865a9c1b76758aa8810 | |
parent | 085603287452fc96376ed4888bf29f8c095d2b40 (diff) |
drm/i915/glk: Remove 99% limitation.
While checking the opportunity to add a display_gen
check to allow glk and cnl to be on same bucket I noticed
these FIXME cases here.
So I got the confirmation from HW architect that we actually
never needed this workaround.
"GLK supports 2 pixel per clock, so pixel clock can be up to 2 * cdclk."
So, this reverts commit 97f55ca5b662 ("drm/i915/glk: limit pixel
clock to 99% of cdclk workaround")
Fixes: 97f55ca5b662 ("drm/i915/glk: limit pixel clock to 99% of cdclk workaround")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Madhav Chauhan <madhav.chauhan@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Cc: Arthur J Runyan <arthur.j.runyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181026005636.22274-1-rodrigo.vivi@intel.com
(cherry picked from commit 42882336e62aab00278114392a16374f272a0c99)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_cdclk.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c index 29075c763428..8d74276029e6 100644 --- a/drivers/gpu/drm/i915/intel_cdclk.c +++ b/drivers/gpu/drm/i915/intel_cdclk.c | |||
@@ -2138,16 +2138,8 @@ void intel_set_cdclk(struct drm_i915_private *dev_priv, | |||
2138 | static int intel_pixel_rate_to_cdclk(struct drm_i915_private *dev_priv, | 2138 | static int intel_pixel_rate_to_cdclk(struct drm_i915_private *dev_priv, |
2139 | int pixel_rate) | 2139 | int pixel_rate) |
2140 | { | 2140 | { |
2141 | if (INTEL_GEN(dev_priv) >= 10) | 2141 | if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) |
2142 | return DIV_ROUND_UP(pixel_rate, 2); | 2142 | return DIV_ROUND_UP(pixel_rate, 2); |
2143 | else if (IS_GEMINILAKE(dev_priv)) | ||
2144 | /* | ||
2145 | * FIXME: Avoid using a pixel clock that is more than 99% of the cdclk | ||
2146 | * as a temporary workaround. Use a higher cdclk instead. (Note that | ||
2147 | * intel_compute_max_dotclk() limits the max pixel clock to 99% of max | ||
2148 | * cdclk.) | ||
2149 | */ | ||
2150 | return DIV_ROUND_UP(pixel_rate * 100, 2 * 99); | ||
2151 | else if (IS_GEN9(dev_priv) || | 2143 | else if (IS_GEN9(dev_priv) || |
2152 | IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) | 2144 | IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) |
2153 | return pixel_rate; | 2145 | return pixel_rate; |
@@ -2543,14 +2535,8 @@ static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv) | |||
2543 | { | 2535 | { |
2544 | int max_cdclk_freq = dev_priv->max_cdclk_freq; | 2536 | int max_cdclk_freq = dev_priv->max_cdclk_freq; |
2545 | 2537 | ||
2546 | if (INTEL_GEN(dev_priv) >= 10) | 2538 | if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) |
2547 | return 2 * max_cdclk_freq; | 2539 | return 2 * max_cdclk_freq; |
2548 | else if (IS_GEMINILAKE(dev_priv)) | ||
2549 | /* | ||
2550 | * FIXME: Limiting to 99% as a temporary workaround. See | ||
2551 | * intel_min_cdclk() for details. | ||
2552 | */ | ||
2553 | return 2 * max_cdclk_freq * 99 / 100; | ||
2554 | else if (IS_GEN9(dev_priv) || | 2540 | else if (IS_GEN9(dev_priv) || |
2555 | IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) | 2541 | IS_BROADWELL(dev_priv) || IS_HASWELL(dev_priv)) |
2556 | return max_cdclk_freq; | 2542 | return max_cdclk_freq; |