Skip to content

Commit

Permalink
drm/i915: add relative ring register macros
Browse files Browse the repository at this point in the history
Documentation explicitly mentions that the ring registers are
designed to have the same offsets relative to a base registers.

Use this to fight the code beaurocratic in intel_ringbuffer.c.

No code changes in this patch, just the new definitions.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
  • Loading branch information
Daniel Vetter authored and Chris Wilson committed Sep 21, 2010
1 parent b8aea0c commit 333e9fe
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
8 changes: 8 additions & 0 deletions drivers/gpu/drm/i915/i915_reg.h
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,14 @@
#define PRB0_HEAD 0x02034
#define PRB0_START 0x02038
#define PRB0_CTL 0x0203c
#define RENDER_RING_BASE 0x02000
#define BSD_RING_BASE 0x04000
#define GEN6_BSD_RING_BASE 0x12000
#define RING_TAIL(base) (base)+0x30
#define RING_HEAD(base) (base)+0x34
#define RING_START(base) (base)+0x38
#define RING_CTL(base) (base)+0x3c
#define RING_HWS_PGA(base) (base)+0x80
#define TAIL_ADDR 0x001FFFF8
#define HEAD_WRAP_COUNT 0xFFE00000
#define HEAD_WRAP_ONE 0x00200000
Expand Down
3 changes: 3 additions & 0 deletions drivers/gpu/drm/i915/intel_ringbuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -801,6 +801,7 @@ static const struct intel_ring_buffer render_ring = {
.tail = PRB0_TAIL,
.start = PRB0_START
},
.mmio_base = RENDER_RING_BASE,
.size = 32 * PAGE_SIZE,
.alignment = PAGE_SIZE,
.virtual_start = NULL,
Expand Down Expand Up @@ -839,6 +840,7 @@ static const struct intel_ring_buffer bsd_ring = {
.tail = BSD_RING_TAIL,
.start = BSD_RING_START
},
.mmio_base = BSD_RING_BASE,
.size = 32 * PAGE_SIZE,
.alignment = PAGE_SIZE,
.virtual_start = NULL,
Expand Down Expand Up @@ -957,6 +959,7 @@ static const struct intel_ring_buffer gen6_bsd_ring = {
.tail = GEN6_BSD_RING_TAIL,
.start = GEN6_BSD_RING_START
},
.mmio_base = GEN6_BSD_RING_BASE,
.size = 32 * PAGE_SIZE,
.alignment = PAGE_SIZE,
.virtual_start = NULL,
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/i915/intel_ringbuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ struct intel_ring_buffer {
u32 tail;
u32 start;
} regs;
u32 mmio_base;
unsigned long size;
unsigned int alignment;
void *virtual_start;
Expand Down

0 comments on commit 333e9fe

Please sign in to comment.