aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_sysfs.c
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2013-09-18 00:12:42 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-09-19 14:36:35 -0400
commit1c966dd26b2e46a9d089fcb7e36f649000670e64 (patch)
treec0bd82cdae2f168b0d186a31dc030c2ea745efd1 /drivers/gpu/drm/i915/i915_sysfs.c
parent644db711d3af6f7b91ce4b7e1a056a84bf34d349 (diff)
drm/i915: Fix HSW parity test
Haswell changed the log registers to be WO, so we can no longer read them to determine the programming (which sucks, see later note). For now, simply use the cached value, and hope HW doesn't screw us over. v2: Simplify the logic to avoid an extra !, remove last, and fix the buffer offset which broke along the rebase (Ville) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57441 CC: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_sysfs.c')
-rw-r--r--drivers/gpu/drm/i915/i915_sysfs.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c
index d572435cfbe7..71f6de24444e 100644
--- a/drivers/gpu/drm/i915/i915_sysfs.c
+++ b/drivers/gpu/drm/i915/i915_sysfs.c
@@ -133,6 +133,17 @@ i915_l3_read(struct file *filp, struct kobject *kobj,
133 if (ret) 133 if (ret)
134 return ret; 134 return ret;
135 135
136 if (IS_HASWELL(drm_dev)) {
137 if (dev_priv->l3_parity.remap_info)
138 memcpy(buf,
139 dev_priv->l3_parity.remap_info + (offset/4),
140 count);
141 else
142 memset(buf, 0, count);
143
144 goto out;
145 }
146
136 misccpctl = I915_READ(GEN7_MISCCPCTL); 147 misccpctl = I915_READ(GEN7_MISCCPCTL);
137 I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE); 148 I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);
138 149
@@ -141,9 +152,10 @@ i915_l3_read(struct file *filp, struct kobject *kobj,
141 152
142 I915_WRITE(GEN7_MISCCPCTL, misccpctl); 153 I915_WRITE(GEN7_MISCCPCTL, misccpctl);
143 154
155out:
144 mutex_unlock(&drm_dev->struct_mutex); 156 mutex_unlock(&drm_dev->struct_mutex);
145 157
146 return i; 158 return count;
147} 159}
148 160
149static ssize_t 161static ssize_t