aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_ringbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c7
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)
344static void ring_setup_phys_status_page(struct intel_engine_cs *engine) 344static 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