diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-07 09:55:57 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-06-12 16:18:06 -0400 |
commit | dd2757f8b557ab2030154896eac9b2285557dda6 (patch) | |
tree | 8cb47f03ff7a391ac70b749fdddf5d00db2f90d2 /drivers/gpu/drm/i915/i915_dma.c | |
parent | 9b990de76ced807b2d92a601fb7f03863b632c58 (diff) |
drm/i915: stop using dev->agp->base
For that to work we need to export the base address of the gtt
mmio window from intel-gtt. Also replace all other uses of
dev->agp by values we already have at hand.
Reviewed-by: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_dma.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 97a5a5857f5b..c639d431ad66 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -1085,8 +1085,8 @@ static int i915_set_status_page(struct drm_device *dev, void *data, | |||
1085 | 1085 | ||
1086 | ring->status_page.gfx_addr = hws->addr & (0x1ffff<<12); | 1086 | ring->status_page.gfx_addr = hws->addr & (0x1ffff<<12); |
1087 | 1087 | ||
1088 | dev_priv->dri1.gfx_hws_cpu_addr = ioremap_wc(dev->agp->base + hws->addr, | 1088 | dev_priv->dri1.gfx_hws_cpu_addr = |
1089 | 4096); | 1089 | ioremap_wc(dev_priv->mm.gtt_base_addr + hws->addr, 4096); |
1090 | if (dev_priv->dri1.gfx_hws_cpu_addr == NULL) { | 1090 | if (dev_priv->dri1.gfx_hws_cpu_addr == NULL) { |
1091 | i915_dma_cleanup(dev); | 1091 | i915_dma_cleanup(dev); |
1092 | ring->status_page.gfx_addr = 0; | 1092 | ring->status_page.gfx_addr = 0; |
@@ -1482,15 +1482,18 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
1482 | } | 1482 | } |
1483 | 1483 | ||
1484 | aperture_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT; | 1484 | aperture_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT; |
1485 | dev_priv->mm.gtt_base_addr = dev_priv->mm.gtt->gma_bus_addr; | ||
1485 | 1486 | ||
1486 | dev_priv->mm.gtt_mapping = | 1487 | dev_priv->mm.gtt_mapping = |
1487 | io_mapping_create_wc(dev->agp->base, aperture_size); | 1488 | io_mapping_create_wc(dev_priv->mm.gtt_base_addr, |
1489 | aperture_size); | ||
1488 | if (dev_priv->mm.gtt_mapping == NULL) { | 1490 | if (dev_priv->mm.gtt_mapping == NULL) { |
1489 | ret = -EIO; | 1491 | ret = -EIO; |
1490 | goto out_rmmap; | 1492 | goto out_rmmap; |
1491 | } | 1493 | } |
1492 | 1494 | ||
1493 | i915_mtrr_setup(dev_priv, dev->agp->base, aperture_size); | 1495 | i915_mtrr_setup(dev_priv, dev_priv->mm.gtt_base_addr, |
1496 | aperture_size); | ||
1494 | 1497 | ||
1495 | /* The i915 workqueue is primarily used for batched retirement of | 1498 | /* The i915 workqueue is primarily used for batched retirement of |
1496 | * requests (and thus managing bo) once the task has been completed | 1499 | * requests (and thus managing bo) once the task has been completed |
@@ -1602,8 +1605,9 @@ out_gem_unload: | |||
1602 | destroy_workqueue(dev_priv->wq); | 1605 | destroy_workqueue(dev_priv->wq); |
1603 | out_mtrrfree: | 1606 | out_mtrrfree: |
1604 | if (dev_priv->mm.gtt_mtrr >= 0) { | 1607 | if (dev_priv->mm.gtt_mtrr >= 0) { |
1605 | mtrr_del(dev_priv->mm.gtt_mtrr, dev->agp->base, | 1608 | mtrr_del(dev_priv->mm.gtt_mtrr, |
1606 | dev->agp->agp_info.aper_size * 1024 * 1024); | 1609 | dev_priv->mm.gtt_base_addr, |
1610 | aperture_size); | ||
1607 | dev_priv->mm.gtt_mtrr = -1; | 1611 | dev_priv->mm.gtt_mtrr = -1; |
1608 | } | 1612 | } |
1609 | io_mapping_free(dev_priv->mm.gtt_mapping); | 1613 | io_mapping_free(dev_priv->mm.gtt_mapping); |
@@ -1640,8 +1644,9 @@ int i915_driver_unload(struct drm_device *dev) | |||
1640 | 1644 | ||
1641 | io_mapping_free(dev_priv->mm.gtt_mapping); | 1645 | io_mapping_free(dev_priv->mm.gtt_mapping); |
1642 | if (dev_priv->mm.gtt_mtrr >= 0) { | 1646 | if (dev_priv->mm.gtt_mtrr >= 0) { |
1643 | mtrr_del(dev_priv->mm.gtt_mtrr, dev->agp->base, | 1647 | mtrr_del(dev_priv->mm.gtt_mtrr, |
1644 | dev->agp->agp_info.aper_size * 1024 * 1024); | 1648 | dev_priv->mm.gtt_base_addr, |
1649 | dev_priv->mm.gtt->gtt_mappable_entries * PAGE_SIZE); | ||
1645 | dev_priv->mm.gtt_mtrr = -1; | 1650 | dev_priv->mm.gtt_mtrr = -1; |
1646 | } | 1651 | } |
1647 | 1652 | ||