drm/i915: add relative ring register macros
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>
This commit is contained in:
committed by
Chris Wilson
parent
b8aea0c800
commit
333e9fe94d
@@ -288,6 +288,14 @@
|
|||||||
#define PRB0_HEAD 0x02034
|
#define PRB0_HEAD 0x02034
|
||||||
#define PRB0_START 0x02038
|
#define PRB0_START 0x02038
|
||||||
#define PRB0_CTL 0x0203c
|
#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 TAIL_ADDR 0x001FFFF8
|
||||||
#define HEAD_WRAP_COUNT 0xFFE00000
|
#define HEAD_WRAP_COUNT 0xFFE00000
|
||||||
#define HEAD_WRAP_ONE 0x00200000
|
#define HEAD_WRAP_ONE 0x00200000
|
||||||
|
@@ -801,6 +801,7 @@ static const struct intel_ring_buffer render_ring = {
|
|||||||
.tail = PRB0_TAIL,
|
.tail = PRB0_TAIL,
|
||||||
.start = PRB0_START
|
.start = PRB0_START
|
||||||
},
|
},
|
||||||
|
.mmio_base = RENDER_RING_BASE,
|
||||||
.size = 32 * PAGE_SIZE,
|
.size = 32 * PAGE_SIZE,
|
||||||
.alignment = PAGE_SIZE,
|
.alignment = PAGE_SIZE,
|
||||||
.virtual_start = NULL,
|
.virtual_start = NULL,
|
||||||
@@ -839,6 +840,7 @@ static const struct intel_ring_buffer bsd_ring = {
|
|||||||
.tail = BSD_RING_TAIL,
|
.tail = BSD_RING_TAIL,
|
||||||
.start = BSD_RING_START
|
.start = BSD_RING_START
|
||||||
},
|
},
|
||||||
|
.mmio_base = BSD_RING_BASE,
|
||||||
.size = 32 * PAGE_SIZE,
|
.size = 32 * PAGE_SIZE,
|
||||||
.alignment = PAGE_SIZE,
|
.alignment = PAGE_SIZE,
|
||||||
.virtual_start = NULL,
|
.virtual_start = NULL,
|
||||||
@@ -957,6 +959,7 @@ static const struct intel_ring_buffer gen6_bsd_ring = {
|
|||||||
.tail = GEN6_BSD_RING_TAIL,
|
.tail = GEN6_BSD_RING_TAIL,
|
||||||
.start = GEN6_BSD_RING_START
|
.start = GEN6_BSD_RING_START
|
||||||
},
|
},
|
||||||
|
.mmio_base = GEN6_BSD_RING_BASE,
|
||||||
.size = 32 * PAGE_SIZE,
|
.size = 32 * PAGE_SIZE,
|
||||||
.alignment = PAGE_SIZE,
|
.alignment = PAGE_SIZE,
|
||||||
.virtual_start = NULL,
|
.virtual_start = NULL,
|
||||||
|
@@ -20,6 +20,7 @@ struct intel_ring_buffer {
|
|||||||
u32 tail;
|
u32 tail;
|
||||||
u32 start;
|
u32 start;
|
||||||
} regs;
|
} regs;
|
||||||
|
u32 mmio_base;
|
||||||
unsigned long size;
|
unsigned long size;
|
||||||
unsigned int alignment;
|
unsigned int alignment;
|
||||||
void *virtual_start;
|
void *virtual_start;
|
||||||
|
Reference in New Issue
Block a user