aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_debugfs.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2011-01-05 15:01:24 -0500
committerChris Wilson <chris@chris-wilson.co.uk>2011-01-11 15:43:58 -0500
commit88271da3f3da75d6eaef5e768c82a1627edf7088 (patch)
treebe417b97f6252786dd0366592d05d1fc0cb8a939 /drivers/gpu/drm/i915/i915_debugfs.c
parent0dc79fb2a36efcadbb39bd8b28933d8aa40408b1 (diff)
drm/i915: re-enable rc6 support for Ironlake+
Re-enable rc6 support on Ironlake for power savings. Adds a debugfs file to check current RC state, adds a missing workaround for Ironlake MI_SET_CONTEXT instructions, and renames MCHBAR_RENDER_STANDBY to RSTDBYCTL to match the docs. Keep RC6 and the power context disabled on pre-ILK. It only seems to hang and doesn't save any power. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_debugfs.c')
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 7243d6418651..9c4cdc143be9 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -896,7 +896,7 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
896 struct drm_device *dev = node->minor->dev; 896 struct drm_device *dev = node->minor->dev;
897 drm_i915_private_t *dev_priv = dev->dev_private; 897 drm_i915_private_t *dev_priv = dev->dev_private;
898 u32 rgvmodectl = I915_READ(MEMMODECTL); 898 u32 rgvmodectl = I915_READ(MEMMODECTL);
899 u32 rstdbyctl = I915_READ(MCHBAR_RENDER_STANDBY); 899 u32 rstdbyctl = I915_READ(RSTDBYCTL);
900 u16 crstandvid = I915_READ16(CRSTANDVID); 900 u16 crstandvid = I915_READ16(CRSTANDVID);
901 901
902 seq_printf(m, "HD boost: %s\n", (rgvmodectl & MEMMODE_BOOST_EN) ? 902 seq_printf(m, "HD boost: %s\n", (rgvmodectl & MEMMODE_BOOST_EN) ?
@@ -919,6 +919,30 @@ static int i915_drpc_info(struct seq_file *m, void *unused)
919 seq_printf(m, "RS2 VID: %d\n", ((crstandvid >> 8) & 0x3f)); 919 seq_printf(m, "RS2 VID: %d\n", ((crstandvid >> 8) & 0x3f));
920 seq_printf(m, "Render standby enabled: %s\n", 920 seq_printf(m, "Render standby enabled: %s\n",
921 (rstdbyctl & RCX_SW_EXIT) ? "no" : "yes"); 921 (rstdbyctl & RCX_SW_EXIT) ? "no" : "yes");
922 seq_printf(m, "Current RS state: ");
923 switch (rstdbyctl & RSX_STATUS_MASK) {
924 case RSX_STATUS_ON:
925 seq_printf(m, "on\n");
926 break;
927 case RSX_STATUS_RC1:
928 seq_printf(m, "RC1\n");
929 break;
930 case RSX_STATUS_RC1E:
931 seq_printf(m, "RC1E\n");
932 break;
933 case RSX_STATUS_RS1:
934 seq_printf(m, "RS1\n");
935 break;
936 case RSX_STATUS_RS2:
937 seq_printf(m, "RS2 (RC6)\n");
938 break;
939 case RSX_STATUS_RS3:
940 seq_printf(m, "RC3 (RC6+)\n");
941 break;
942 default:
943 seq_printf(m, "unknown\n");
944 break;
945 }
922 946
923 return 0; 947 return 0;
924} 948}