diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 44432677160c..86604dd1c5a5 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -344,11 +344,14 @@ gen7_render_ring_flush(struct i915_request *rq, u32 mode) | |||
344 | static void ring_setup_phys_status_page(struct intel_engine_cs *engine) | 344 | static void ring_setup_phys_status_page(struct intel_engine_cs *engine) |
345 | { | 345 | { |
346 | struct drm_i915_private *dev_priv = engine->i915; | 346 | struct drm_i915_private *dev_priv = engine->i915; |
347 | struct page *page = virt_to_page(engine->status_page.page_addr); | ||
348 | phys_addr_t phys = PFN_PHYS(page_to_pfn(page)); | ||
347 | u32 addr; | 349 | u32 addr; |
348 | 350 | ||
349 | addr = dev_priv->status_page_dmah->busaddr; | 351 | addr = lower_32_bits(phys); |
350 | if (INTEL_GEN(dev_priv) >= 4) | 352 | if (INTEL_GEN(dev_priv) >= 4) |
351 | addr |= (dev_priv->status_page_dmah->busaddr >> 28) & 0xf0; | 353 | addr |= (phys >> 28) & 0xf0; |
354 | |||
352 | I915_WRITE(HWS_PGA, addr); | 355 | I915_WRITE(HWS_PGA, addr); |
353 | } | 356 | } |
354 | 357 | ||