Skip to content

Commit

Permalink
drm/i915: don't store the reg value for HWS_PGA
Browse files Browse the repository at this point in the history
It is trivially computable from the real physical address so no need to
store both.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
  • Loading branch information
Chris Wilson committed Mar 2, 2011
1 parent 8d3c3dd commit 4cbf74c
Showing 2 changed files with 13 additions and 7 deletions.
19 changes: 13 additions & 6 deletions drivers/gpu/drm/i915/i915_dma.c
Original file line number Diff line number Diff line change
@@ -43,6 +43,17 @@
#include <linux/slab.h>
#include <acpi/video.h>

static void i915_write_hws_pga(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = dev->dev_private;
u32 addr;

addr = dev_priv->status_page_dmah->busaddr;
if (INTEL_INFO(dev)->gen >= 4)
addr |= (dev_priv->status_page_dmah->busaddr >> 28) & 0xf0;
I915_WRITE(HWS_PGA, addr);
}

/**
* Sets up the hardware status page for devices that need a physical address
* in the register.
@@ -62,15 +73,11 @@ static int i915_init_phys_hws(struct drm_device *dev)
}
ring->status_page.page_addr =
(void __force __iomem *)dev_priv->status_page_dmah->vaddr;
dev_priv->dma_status_page = dev_priv->status_page_dmah->busaddr;

memset_io(ring->status_page.page_addr, 0, PAGE_SIZE);

if (INTEL_INFO(dev)->gen >= 4)
dev_priv->dma_status_page |= (dev_priv->dma_status_page >> 28) &
0xf0;
i915_write_hws_pga(dev);

I915_WRITE(HWS_PGA, dev_priv->dma_status_page);
DRM_DEBUG_DRIVER("Enabled hardware status page\n");
return 0;
}
@@ -217,7 +224,7 @@ static int i915_dma_resume(struct drm_device * dev)
if (ring->status_page.gfx_addr != 0)
intel_ring_setup_status_page(ring);
else
I915_WRITE(HWS_PGA, dev_priv->dma_status_page);
i915_write_hws_pga(dev);

DRM_DEBUG_DRIVER("Enabled hardware status page\n");

1 change: 0 additions & 1 deletion drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
@@ -274,7 +274,6 @@ typedef struct drm_i915_private {
uint32_t next_seqno;

drm_dma_handle_t *status_page_dmah;
dma_addr_t dma_status_page;
uint32_t counter;
drm_local_map_t hws_map;
struct drm_i915_gem_object *pwrctx;

0 comments on commit 4cbf74c

Please sign in to comment.