aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_reg.h
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2010-04-01 01:07:53 -0400
committerEric Anholt <eric@anholt.net>2010-04-12 12:30:43 -0400
commit7f8a85698f5c8a981641ec0bdf9926768786db9d (patch)
tree3ae3183d2ac3f9816d501afd80e06fbd34d2c683 /drivers/gpu/drm/i915/i915_reg.h
parentd4294342fd4b94a3297867da00c1c5e929c28d4f (diff)
drm/i915: Add the support of memory self-refresh on Ironlake
Update the self-refresh watermark for display plane/cursor and enable the memory self-refresh on Ironlake. The watermark is also updated for the active display plane. More than 1W idle power is saved on one Ironlake laptop after enabling memory self-refresh. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_reg.h')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 6d8bf6220e19..527d30aecda2 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2030,6 +2030,43 @@
2030#define PINEVIEW_CURSOR_DFT_WM 0 2030#define PINEVIEW_CURSOR_DFT_WM 0
2031#define PINEVIEW_CURSOR_GUARD_WM 5 2031#define PINEVIEW_CURSOR_GUARD_WM 5
2032 2032
2033
2034/* define the Watermark register on Ironlake */
2035#define WM0_PIPEA_ILK 0x45100
2036#define WM0_PIPE_PLANE_MASK (0x7f<<16)
2037#define WM0_PIPE_PLANE_SHIFT 16
2038#define WM0_PIPE_SPRITE_MASK (0x3f<<8)
2039#define WM0_PIPE_SPRITE_SHIFT 8
2040#define WM0_PIPE_CURSOR_MASK (0x1f)
2041
2042#define WM0_PIPEB_ILK 0x45104
2043#define WM1_LP_ILK 0x45108
2044#define WM1_LP_SR_EN (1<<31)
2045#define WM1_LP_LATENCY_SHIFT 24
2046#define WM1_LP_LATENCY_MASK (0x7f<<24)
2047#define WM1_LP_SR_MASK (0x1ff<<8)
2048#define WM1_LP_SR_SHIFT 8
2049#define WM1_LP_CURSOR_MASK (0x3f)
2050
2051/* Memory latency timer register */
2052#define MLTR_ILK 0x11222
2053/* the unit of memory self-refresh latency time is 0.5us */
2054#define ILK_SRLT_MASK 0x3f
2055
2056/* define the fifo size on Ironlake */
2057#define ILK_DISPLAY_FIFO 128
2058#define ILK_DISPLAY_MAXWM 64
2059#define ILK_DISPLAY_DFTWM 8
2060
2061#define ILK_DISPLAY_SR_FIFO 512
2062#define ILK_DISPLAY_MAX_SRWM 0x1ff
2063#define ILK_DISPLAY_DFT_SRWM 0x3f
2064#define ILK_CURSOR_SR_FIFO 64
2065#define ILK_CURSOR_MAX_SRWM 0x3f
2066#define ILK_CURSOR_DFT_SRWM 8
2067
2068#define ILK_FIFO_LINE_SIZE 64
2069
2033/* 2070/*
2034 * The two pipe frame counter registers are not synchronized, so 2071 * The two pipe frame counter registers are not synchronized, so
2035 * reading a stable value is somewhat tricky. The following code 2072 * reading a stable value is somewhat tricky. The following code
@@ -2310,8 +2347,15 @@
2310#define GTIIR 0x44018 2347#define GTIIR 0x44018
2311#define GTIER 0x4401c 2348#define GTIER 0x4401c
2312 2349
2350#define ILK_DISPLAY_CHICKEN2 0x42004
2351#define ILK_DPARB_GATE (1<<22)
2352#define ILK_VSDPFD_FULL (1<<21)
2353#define ILK_DSPCLK_GATE 0x42020
2354#define ILK_DPARB_CLK_GATE (1<<5)
2355
2313#define DISP_ARB_CTL 0x45000 2356#define DISP_ARB_CTL 0x45000
2314#define DISP_TILE_SURFACE_SWIZZLING (1<<13) 2357#define DISP_TILE_SURFACE_SWIZZLING (1<<13)
2358#define DISP_FBC_WM_DIS (1<<15)
2315 2359
2316/* PCH */ 2360/* PCH */
2317 2361