[PATCH 2/2] t2
Chris Wilson
chris at chris-wilson.co.uk
Sat Aug 18 12:51:31 UTC 2018
---
drivers/gpu/drm/i915/i915_drv.h | 1 +
drivers/gpu/drm/i915/i915_gem_stolen.c | 4 ++++
drivers/gpu/drm/i915/intel_overlay.c | 8 ++------
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index e5b9d3c77139..04759bfab9fc 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1621,6 +1621,7 @@ struct drm_i915_private {
*/
resource_size_t stolen_usable_size; /* Total size minus reserved ranges */
+ void __iomem *stolen;
void __iomem *regs;
struct intel_uncore uncore;
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
index 53440bf87650..3e02ace27230 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -175,6 +175,7 @@ void i915_gem_cleanup_stolen(struct drm_device *dev)
return;
drm_mm_takedown(&dev_priv->mm.stolen);
+ iounmap(dev_priv->stolen);
}
static void g4x_get_stolen_reserved(struct drm_i915_private *dev_priv,
@@ -478,6 +479,9 @@ int i915_gem_init_stolen(struct drm_i915_private *dev_priv)
dev_priv->stolen_usable_size =
resource_size(&dev_priv->dsm) - reserved_total;
+ dev_priv->stolen = ioremap_nocache(dev_priv->dsm.start,
+ resource_size(&dev_priv->dsm));
+
/* Basic memrange allocator for stolen space. */
drm_mm_init(&dev_priv->mm.stolen, 0, dev_priv->stolen_usable_size);
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index bdc6b695cf07..823d9ab38abb 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -1348,16 +1348,12 @@ static int get_physical_registers(struct intel_overlay *overlay)
/* Old enough that we can relibably access stolen directly */
obj = i915_gem_object_create_stolen(overlay->i915, PAGE_SIZE);
if (obj) {
- unsigned long addr;
-
err = i915_gem_object_pin_pages(obj);
if (err)
goto err_put_bo;
- addr = sg_dma_address(obj->mm.pages->sgl);
- overlay->flip_addr = addr;
- overlay->regs =
- (struct overlay_registers __iomem *)phys_to_virt(addr);
+ overlay->flip_addr = sg_dma_address(obj->mm.pages->sgl);
+ overlay->regs = overlay->i915->stolen + obj->stolen->start;
overlay->reg_bo = obj;
return 0;
}
--
2.18.0
More information about the Intel-gfx-trybot
mailing list