diff options
| author | Ben Widawsky <ben@bwidawsk.net> | 2012-04-20 14:50:01 -0400 |
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-23 03:30:14 -0400 |
| commit | a85d4bcb8a0cd5b3c754f98ff91ef2b9b3a73bc5 (patch) | |
| tree | 0c1f195ce4d6ef024c5933c162710c80fb44bbd1 | |
| parent | 3801a7fd8615365a58960561d3bd3479b485ed3e (diff) | |
drm/i915: rc6 residency (fix the fix)
Chris' fix for my 32b breakage was incorrect. do_div returns a
remainder. Go back to a divide macro which is more 32b friendly.
Tested on x86-64.
This has only been compile tested on 32b systems.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48756
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Sincere-apologies: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
[danvet: fixup 32bit compile-fail.]
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| -rw-r--r-- | drivers/gpu/drm/i915/i915_sysfs.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c index f1b5108931fe..79f83445afa0 100644 --- a/drivers/gpu/drm/i915/i915_sysfs.c +++ b/drivers/gpu/drm/i915/i915_sysfs.c | |||
| @@ -39,8 +39,8 @@ static u32 calc_residency(struct drm_device *dev, const u32 reg) | |||
| 39 | if (!intel_enable_rc6(dev)) | 39 | if (!intel_enable_rc6(dev)) |
| 40 | return 0; | 40 | return 0; |
| 41 | 41 | ||
| 42 | raw_time = I915_READ(reg) * 128ULL + 500; | 42 | raw_time = I915_READ(reg) * 128ULL; |
| 43 | return do_div(raw_time, 100000); | 43 | return DIV_ROUND_UP_ULL(raw_time, 100000); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | static ssize_t | 46 | static ssize_t |
