summaryrefslogtreecommitdiff
path: root/overlay/gpu-top.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-08-21 09:16:25 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2013-08-21 09:16:25 +0100
commit3e7dddc1d1deff674c64b42d26aa1d31b47e495e (patch)
tree037600a26cd42a3e2ccf7eddcc8d8cb89fa490f9 /overlay/gpu-top.c
parenta7b742092700b68d049597d1f25574cac41bb63a (diff)
overlay: Fix old mmio gpu busyness probing
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'overlay/gpu-top.c')
-rw-r--r--overlay/gpu-top.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/overlay/gpu-top.c b/overlay/gpu-top.c
index d613553e..14859493 100644
--- a/overlay/gpu-top.c
+++ b/overlay/gpu-top.c
@@ -155,14 +155,14 @@ struct mmio_ring {
static uint32_t mmio_ring_read(struct mmio_ring *ring, uint32_t reg)
{
- return igfx_read(ring->mmio, reg);
+ return igfx_read(ring->mmio, ring->base + reg);
}
static void mmio_ring_init(struct mmio_ring *ring, void *mmio)
{
uint32_t ctl;
- ring->mmio = (char *)mmio + ring->base;
+ ring->mmio = mmio;
ctl = mmio_ring_read(ring, RING_CTL);
if ((ctl & 1) == 0)
@@ -255,12 +255,15 @@ static void mmio_init(struct gpu_top *gt)
}
mmio = igfx_get_mmio(igfx);
+ if (mmio == NULL)
+ exit(127);
mmio_ring_init(&render_ring, mmio);
if (info->gen >= 060) {
- mmio_ring_init(&bsd6_ring, mmio);
+ bsd_ring = bsd6_ring;
mmio_ring_init(&blt_ring, mmio);
- } else if (info->gen >= 040) {
+ }
+ if (info->gen >= 040) {
mmio_ring_init(&bsd_ring, mmio);
}
@@ -269,20 +272,17 @@ static void mmio_init(struct gpu_top *gt)
mmio_ring_reset(&render_ring);
mmio_ring_reset(&bsd_ring);
- mmio_ring_reset(&bsd6_ring);
mmio_ring_reset(&blt_ring);
for (i = 0; i < 1000; i++) {
mmio_ring_sample(&render_ring);
mmio_ring_sample(&bsd_ring);
- mmio_ring_sample(&bsd6_ring);
mmio_ring_sample(&blt_ring);
usleep(1000);
}
mmio_ring_emit(&render_ring, 1000, payload);
mmio_ring_emit(&bsd_ring, 1000, payload);
- mmio_ring_emit(&bsd6_ring, 1000, payload);
mmio_ring_emit(&blt_ring, 1000, payload);
write(fd[1], payload, sizeof(payload));