diff options
author | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2013-08-23 16:37:32 -0300 |
---|---|---|
committer | Paulo Zanoni <paulo.r.zanoni@intel.com> | 2013-08-23 16:37:32 -0300 |
commit | ed9817a6e5431423e11d3c66f4d1555abe123f0b (patch) | |
tree | d14655d5dc874b3ae6c77c5636aca5eb6113eaff | |
parent | eb2b76d5cb7432ea4ca60f87b3a0e2f052af48dd (diff) |
XXX: more D3 stuffd3-wip
- My bikeshed to Jani's patch
- A debugfs file
Not-signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 6 |
2 files changed, 16 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 8378ee732128..3527ab4989f7 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -1815,6 +1815,19 @@ static int i915_pc8_status(struct seq_file *m, void *unused) return 0; } +static int i915_d3_status(struct seq_file *m, void *unused) +{ + struct drm_info_node *node = (struct drm_info_node *) m->private; + struct drm_device *dev = node->minor->dev; + struct drm_i915_private *dev_priv = dev->dev_private; + u16 val; + + pci_read_config_word(dev->pdev, 0xd4, &val); + seq_printf(m, "0xd4:0x%04x\n", val); + + return 0; +} + static int i915_wedged_get(void *data, u64 *val) { @@ -2256,6 +2269,7 @@ static struct drm_info_list i915_debugfs_list[] = { {"i915_edp_psr_status", i915_edp_psr_status, 0}, {"i915_energy_uJ", i915_energy_uJ, 0}, {"i915_pc8_status", i915_pc8_status, 0}, + {"i915_d3_status", i915_d3_status, 0}, }; #define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index b769dda732cb..bbb6690f4ca1 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -6098,9 +6098,8 @@ void hsw_enable_pc8_work(struct work_struct *__work) lpt_disable_clkout_dp(dev); hsw_pc8_disable_interrupts(dev); + intel_opregion_notify_adapter(dev, PCI_D3cold); hsw_disable_lcpll(dev_priv, true, true); - - intel_opregion_notify_adapter(dev, PCI_D1); } static void __hsw_enable_package_c8(struct drm_i915_private *dev_priv) @@ -6134,11 +6133,10 @@ static void __hsw_disable_package_c8(struct drm_i915_private *dev_priv) if (!dev_priv->pc8.enabled) return; - intel_opregion_notify_adapter(dev, PCI_D0); - DRM_DEBUG_KMS("Disabling package C8+\n"); hsw_restore_lcpll(dev_priv); + intel_opregion_notify_adapter(dev, PCI_D0); hsw_pc8_restore_interrupts(dev); lpt_init_pch_refclk(dev); |