提交 333e9fe9 编写于 作者: D Daniel Vetter 提交者: Chris Wilson

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: NDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
上级 b8aea0c8
...@@ -288,6 +288,14 @@ ...@@ -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 = { ...@@ -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 = { ...@@ -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 = { ...@@ -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 { ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册