diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_perf.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_perf.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c index e94976976571..3640d0e229d2 100644 --- a/drivers/gpu/drm/i915/i915_perf.c +++ b/drivers/gpu/drm/i915/i915_perf.c @@ -909,8 +909,13 @@ static int gen8_oa_read(struct i915_perf_stream *stream,  				       DRM_I915_PERF_RECORD_OA_REPORT_LOST);  		if (ret)  			return ret; -		intel_uncore_write(uncore, oastatus_reg, -				   oastatus & ~GEN8_OASTATUS_REPORT_LOST); + +		intel_uncore_rmw(uncore, oastatus_reg, +				 GEN8_OASTATUS_COUNTER_OVERFLOW | +				 GEN8_OASTATUS_REPORT_LOST, +				 IS_GEN_RANGE(uncore->i915, 8, 10) ? +				 (GEN8_OASTATUS_HEAD_POINTER_WRAP | +				  GEN8_OASTATUS_TAIL_POINTER_WRAP) : 0);  	}  	return gen8_append_oa_reports(stream, buf, count, offset); | 
