aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBen Widawsky <bwidawsk@gmail.com>2012-06-04 17:42:41 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-06-14 11:36:16 -0400
commitfe1cc68fcb11ca14f420068d1806eb5e719ac772 (patch)
tree29a6f05aa084b85b6a9816498b040d8b6296cf0a /drivers
parent14d94a3d82ab3ef6b3a9f881e134d5b48323b202 (diff)
drm/i915: CXT_SIZE register offsets added
The GPUs can have different default context layouts, and the sizes could vary based on platform or BIOS. In order to back the context object with a properly sized BO, we must read this register in order to find out a sufficient size. Thankfully (sarcarm!), the register moves and changes meanings throughout generations. CTX and CXT differences are intentional as that is how it is in the documentation (prior to GEN6 it was CXT). Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c4b1a2b45bb4..bee101208195 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1454,6 +1454,27 @@
1454 */ 1454 */
1455#define CCID 0x2180 1455#define CCID 0x2180
1456#define CCID_EN (1<<0) 1456#define CCID_EN (1<<0)
1457#define CXT_SIZE 0x21a0
1458#define GEN6_CXT_POWER_SIZE(cxt_reg) ((cxt_reg >> 24) & 0x3f)
1459#define GEN6_CXT_RING_SIZE(cxt_reg) ((cxt_reg >> 18) & 0x3f)
1460#define GEN6_CXT_RENDER_SIZE(cxt_reg) ((cxt_reg >> 12) & 0x3f)
1461#define GEN6_CXT_EXTENDED_SIZE(cxt_reg) ((cxt_reg >> 6) & 0x3f)
1462#define GEN6_CXT_PIPELINE_SIZE(cxt_reg) ((cxt_reg >> 0) & 0x3f)
1463#define GEN6_CXT_TOTAL_SIZE(cxt_reg) (GEN6_CXT_POWER_SIZE(cxt_reg) + \
1464 GEN6_CXT_RING_SIZE(cxt_reg) + \
1465 GEN6_CXT_RENDER_SIZE(cxt_reg) + \
1466 GEN6_CXT_EXTENDED_SIZE(cxt_reg) + \
1467 GEN6_CXT_PIPELINE_SIZE(cxt_reg))
1468#define GEN7_CTX_SIZE 0x21a8
1469#define GEN7_CTX_RENDER_SIZE(ctx_reg) ((ctx_reg >> 16) & 0x3f)
1470#define GEN7_CTX_EXTENDED_SIZE(ctx_reg) ((ctx_reg >> 9) & 0x7f)
1471#define GEN7_CTX_GT1_SIZE(ctx_reg) ((ctx_reg >> 6) & 0x7)
1472#define GEN7_CTX_VFSTATE_SIZE(ctx_reg) ((ctx_reg >> 0) & 0x3f)
1473#define GEN7_CTX_TOTAL_SIZE(ctx_reg) (GEN7_CTX_RENDER_SIZE(ctx_reg) + \
1474 GEN7_CTX_EXTENDED_SIZE(ctx_reg) + \
1475 GEN7_CTX_GT1_SIZE(ctx_reg) + \
1476 GEN7_CTX_VFSTATE_SIZE(ctx_reg))
1477
1457/* 1478/*
1458 * Overlay regs 1479 * Overlay regs
1459 */ 1480 */