diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_reg.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 29 |
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) |