| From 31c3a7f61f43a4cf229e4f6168c8cc70c6ecfef9 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com> |
| Date: Thu, 1 Aug 2013 16:18:53 +0300 |
| Subject: drm/i915: Disable specific watermark levels when latency is zero |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Return UINT_MAX for the calculated WM level if the latency is zero. |
| This will lead to marking the WM level as disabled. |
| |
| I'm not sure if latency==0 should mean that we want to disable the |
| level. But that's the implication I got from the fact that we don't |
| even enable the watermark code of the SSKDP register is 0. |
| |
| v2: Use WARN() to scare people |
| |
| Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> |
| Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 3312ba65caa23cf1210cc578755babc394769843) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/intel_pm.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c |
| index 76bd4de232e1..42f541671236 100644 |
| --- a/drivers/gpu/drm/i915/intel_pm.c |
| +++ b/drivers/gpu/drm/i915/intel_pm.c |
| @@ -2131,6 +2131,9 @@ static uint32_t ilk_wm_method1(uint32_t pixel_rate, uint8_t bytes_per_pixel, |
| { |
| uint64_t ret; |
| |
| + if (WARN(latency == 0, "Latency value missing\n")) |
| + return UINT_MAX; |
| + |
| ret = (uint64_t) pixel_rate * bytes_per_pixel * latency; |
| ret = DIV_ROUND_UP_ULL(ret, 64 * 10000) + 2; |
| |
| @@ -2143,6 +2146,9 @@ static uint32_t ilk_wm_method2(uint32_t pixel_rate, uint32_t pipe_htotal, |
| { |
| uint32_t ret; |
| |
| + if (WARN(latency == 0, "Latency value missing\n")) |
| + return UINT_MAX; |
| + |
| ret = (latency * pixel_rate) / (pipe_htotal * 10000); |
| ret = (ret + 1) * horiz_pixels * bytes_per_pixel; |
| ret = DIV_ROUND_UP(ret, 64) + 2; |
| -- |
| 1.8.5.rc3 |
| |