Commit 333e9fe9 authored by Daniel Vetter's avatar Daniel Vetter Committed by Chris Wilson
Browse files

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: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent b8aea0c8
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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,
@@ -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,
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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;