aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_reg.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_reg.h')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h29
1 files changed, 19 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 88a2c0792f26..56708c64e68f 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1447,6 +1447,8 @@
1447#define MCH_SSKPD_WM0_MASK 0x3f 1447#define MCH_SSKPD_WM0_MASK 0x3f
1448#define MCH_SSKPD_WM0_VAL 0xc 1448#define MCH_SSKPD_WM0_VAL 0xc
1449 1449
1450#define MCH_SECP_NRG_STTS (MCHBAR_MIRROR_BASE_SNB + 0x592c)
1451
1450/* Clocking configuration register */ 1452/* Clocking configuration register */
1451#define CLKCFG 0x10c00 1453#define CLKCFG 0x10c00
1452#define CLKCFG_FSB_400 (5 << 0) /* hrawclk 100 */ 1454#define CLKCFG_FSB_400 (5 << 0) /* hrawclk 100 */
@@ -1703,15 +1705,26 @@
1703 */ 1705 */
1704#define CCID 0x2180 1706#define CCID 0x2180
1705#define CCID_EN (1<<0) 1707#define CCID_EN (1<<0)
1708/*
1709 * Notes on SNB/IVB/VLV context size:
1710 * - Power context is saved elsewhere (LLC or stolen)
1711 * - Ring/execlist context is saved on SNB, not on IVB
1712 * - Extended context size already includes render context size
1713 * - We always need to follow the extended context size.
1714 * SNB BSpec has comments indicating that we should use the
1715 * render context size instead if execlists are disabled, but
1716 * based on empirical testing that's just nonsense.
1717 * - Pipelined/VF state is saved on SNB/IVB respectively
1718 * - GT1 size just indicates how much of render context
1719 * doesn't need saving on GT1
1720 */
1706#define CXT_SIZE 0x21a0 1721#define CXT_SIZE 0x21a0
1707#define GEN6_CXT_POWER_SIZE(cxt_reg) ((cxt_reg >> 24) & 0x3f) 1722#define GEN6_CXT_POWER_SIZE(cxt_reg) ((cxt_reg >> 24) & 0x3f)
1708#define GEN6_CXT_RING_SIZE(cxt_reg) ((cxt_reg >> 18) & 0x3f) 1723#define GEN6_CXT_RING_SIZE(cxt_reg) ((cxt_reg >> 18) & 0x3f)
1709#define GEN6_CXT_RENDER_SIZE(cxt_reg) ((cxt_reg >> 12) & 0x3f) 1724#define GEN6_CXT_RENDER_SIZE(cxt_reg) ((cxt_reg >> 12) & 0x3f)
1710#define GEN6_CXT_EXTENDED_SIZE(cxt_reg) ((cxt_reg >> 6) & 0x3f) 1725#define GEN6_CXT_EXTENDED_SIZE(cxt_reg) ((cxt_reg >> 6) & 0x3f)
1711#define GEN6_CXT_PIPELINE_SIZE(cxt_reg) ((cxt_reg >> 0) & 0x3f) 1726#define GEN6_CXT_PIPELINE_SIZE(cxt_reg) ((cxt_reg >> 0) & 0x3f)
1712#define GEN6_CXT_TOTAL_SIZE(cxt_reg) (GEN6_CXT_POWER_SIZE(cxt_reg) + \ 1727#define GEN6_CXT_TOTAL_SIZE(cxt_reg) (GEN6_CXT_RING_SIZE(cxt_reg) + \
1713 GEN6_CXT_RING_SIZE(cxt_reg) + \
1714 GEN6_CXT_RENDER_SIZE(cxt_reg) + \
1715 GEN6_CXT_EXTENDED_SIZE(cxt_reg) + \ 1728 GEN6_CXT_EXTENDED_SIZE(cxt_reg) + \
1716 GEN6_CXT_PIPELINE_SIZE(cxt_reg)) 1729 GEN6_CXT_PIPELINE_SIZE(cxt_reg))
1717#define GEN7_CXT_SIZE 0x21a8 1730#define GEN7_CXT_SIZE 0x21a8
@@ -1721,11 +1734,7 @@
1721#define GEN7_CXT_EXTENDED_SIZE(ctx_reg) ((ctx_reg >> 9) & 0x7f) 1734#define GEN7_CXT_EXTENDED_SIZE(ctx_reg) ((ctx_reg >> 9) & 0x7f)
1722#define GEN7_CXT_GT1_SIZE(ctx_reg) ((ctx_reg >> 6) & 0x7) 1735#define GEN7_CXT_GT1_SIZE(ctx_reg) ((ctx_reg >> 6) & 0x7)
1723#define GEN7_CXT_VFSTATE_SIZE(ctx_reg) ((ctx_reg >> 0) & 0x3f) 1736#define GEN7_CXT_VFSTATE_SIZE(ctx_reg) ((ctx_reg >> 0) & 0x3f)
1724#define GEN7_CXT_TOTAL_SIZE(ctx_reg) (GEN7_CXT_POWER_SIZE(ctx_reg) + \ 1737#define GEN7_CXT_TOTAL_SIZE(ctx_reg) (GEN7_CXT_EXTENDED_SIZE(ctx_reg) + \
1725 GEN7_CXT_RING_SIZE(ctx_reg) + \
1726 GEN7_CXT_RENDER_SIZE(ctx_reg) + \
1727 GEN7_CXT_EXTENDED_SIZE(ctx_reg) + \
1728 GEN7_CXT_GT1_SIZE(ctx_reg) + \
1729 GEN7_CXT_VFSTATE_SIZE(ctx_reg)) 1738 GEN7_CXT_VFSTATE_SIZE(ctx_reg))
1730/* Haswell does have the CXT_SIZE register however it does not appear to be 1739/* Haswell does have the CXT_SIZE register however it does not appear to be
1731 * valid. Now, docs explain in dwords what is in the context object. The full 1740 * valid. Now, docs explain in dwords what is in the context object. The full
@@ -4827,8 +4836,8 @@
4827#define HSW_PWR_WELL_DRIVER 0x45404 /* CTL2 */ 4836#define HSW_PWR_WELL_DRIVER 0x45404 /* CTL2 */
4828#define HSW_PWR_WELL_KVMR 0x45408 /* CTL3 */ 4837#define HSW_PWR_WELL_KVMR 0x45408 /* CTL3 */
4829#define HSW_PWR_WELL_DEBUG 0x4540C /* CTL4 */ 4838#define HSW_PWR_WELL_DEBUG 0x4540C /* CTL4 */
4830#define HSW_PWR_WELL_ENABLE (1<<31) 4839#define HSW_PWR_WELL_ENABLE_REQUEST (1<<31)
4831#define HSW_PWR_WELL_STATE (1<<30) 4840#define HSW_PWR_WELL_STATE_ENABLED (1<<30)
4832#define HSW_PWR_WELL_CTL5 0x45410 4841#define HSW_PWR_WELL_CTL5 0x45410
4833#define HSW_PWR_WELL_ENABLE_SINGLE_STEP (1<<31) 4842#define HSW_PWR_WELL_ENABLE_SINGLE_STEP (1<<31)
4834#define HSW_PWR_WELL_PWR_GATE_OVERRIDE (1<<20) 4843#define HSW_PWR_WELL_PWR_GATE_OVERRIDE (1<<20)