The divider value to convert from CZ clock rate to ms needs a +1
adjustment on VLV just like on CHV. This matches both the spec and
the accuracy test by pm_rc6_residency.

v2:
- simplify logic checking for the CHV 320MHz special case (Rodrigo)

Testcase: igt/pm_rc6_residency
Signed-off-by: Imre Deak <imre.d...@intel.com>
---
 drivers/gpu/drm/i915/i915_sysfs.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_sysfs.c 
b/drivers/gpu/drm/i915/i915_sysfs.c
index 2476268..55bd04c 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -64,24 +64,16 @@ static u32 calc_residency(struct drm_device *dev, const u32 
reg)
                        goto out;
                }
 
-               units = 0;
-               div = 1000000ULL;
-
-               if (IS_CHERRYVIEW(dev)) {
+               if (IS_CHERRYVIEW(dev) && czcount_30ns == 1) {
                        /* Special case for 320Mhz */
-                       if (czcount_30ns == 1) {
-                               div = 10000000ULL;
-                               units = 3125ULL;
-                       } else {
-                               /* chv counts are one less */
-                               czcount_30ns += 1;
-                       }
+                       div = 10000000ULL;
+                       units = 3125ULL;
+               } else {
+                       czcount_30ns += 1;
+                       div = 1000000ULL;
+                       units = DIV_ROUND_UP_ULL(30ULL * bias, czcount_30ns);
                }
 
-               if (units == 0)
-                       units = DIV_ROUND_UP_ULL(30ULL * bias,
-                                                (u64)czcount_30ns);
-
                if (I915_READ(VLV_COUNTER_CONTROL) & VLV_COUNT_RANGE_HIGH)
                        units <<= 8;
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to