Bug 93016 - [SKL-Y] VGA PCI controler does not suspend
Summary: [SKL-Y] VGA PCI controler does not suspend
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-19 14:59 UTC by cprigent
Modified: 2015-11-23 17:25 UTC (History)
1 user (show)

See Also:
i915 platform: SKL
i915 features: power/runtime PM


Attachments
4.4-rc1-nightly_text-mode_kern.log (269.79 KB, text/plain)
2015-11-19 14:59 UTC, cprigent
no flags Details

Description cprigent 2015-11-19 14:59:41 UTC
Created attachment 119941 [details]
4.4-rc1-nightly_text-mode_kern.log

Hardware
Platform: SKY LAKE Y A0 QUAL
CPU : Intel(R) Core(TM) M5-6Y54 @ 1.10GHz 4MB (family: 6, model: 78  stepping: 3)
MCP : SKL-Y  D0   
QDF : QJ9W
CPU : SKL D0
Chipset PCH: Sunrise Point LP C0       
CRB : SKY LAKE Y LPDDR3 RVP3 CRB FAB2
Reworks : All Mandatories + FBS02 & FBS03, O-06
Software 
Linux : Ubuntu 14.04 64 bits
BIOS : SKLSE2R1.R00.B104.B01.1511110114
ME FW : 11.0.0.1191
Ksc (EC FW): 1.20
Kernel 4.4.0-rc1 nighlty 2e0db75 from git://anongit.freedesktop.org/drm-intel
  commit 2e0db751f53791a654eaeb829efd2b4125249dfc
  Author: Imre Deak <imre.deak@intel.com>
  Date:   Wed Nov 18 21:49:07 2015 +0200
  drm-intel-nightly: 2015y-11m-18d-19h-48m-48s UTC integration manifest
Mesa 11.0.5 from http://cgit.freedesktop.org/mesa/mesa/
xf86-video-intel - 2.99.917 from http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/
Libdrm - 2.4.65 from http://cgit.freedesktop.org/mesa/drm/
Libva - 1.6.1 from http://cgit.freedesktop.org/libva/
vaapi intel-driver - 1.6.1 from http://cgit.freedesktop.org/vaapi/intel-driver
Cairo - 1.14.2 from http://cgit.freedesktop.org/cairo
Xorg Xserver - 1.17.2 from http://cgit.freedesktop.org/xorg/xserver

Steps:
------
1. Boot with kernel boot command line: i915.disable_power_well=1 
2. Make audio codec enters D3 hot, with command:
echo 5 > /sys/module/snd_hda_intel/parameters/power_save
3. Enable autosuspend for the audio device, with command:
echo auto > /sys/bus/pci/devices/0000:00:1f.3/power/control
4. Allow the device driver to power manage the VGA compatible controller at run time with command:
echo auto > /sys/bus/pci/devices/0000:00:02.0/power/control
5. Check status and suspended time with command:
grep . /sys/bus/pci/devices/0000:00:02.0/power/runtime_*

6. From Ubuntu Power settings, configure Turn screen off when inactive after 1 minute
7. Auto-tune the system using PowerTop, execute command:
sudo powertop --auto-tune
8. Wait 3 minutes
9. Check status and suspended time with command:
grep . /sys/bus/pci/devices/0000:00:02.0/power/runtime_*

10. Turn off monitor with: xrandr --output eDP1 --off
11. Wait a moment
12. Turn it on with xrandr --output eDP1 --on (connected via ssh)
13. Check suspended time with command:
grep . /sys/bus/pci/devices/0000:00:02.0/power/runtime_*

14. With previous conditions, turn off networks, disconnect devices (mouse, keyboard ...), close applications (Terminal)
15. Wait 2 hours (screen automatically turns off)
16. Check suspended time with command:
grep . /sys/bus/pci/devices/0000:00:02.0/power/runtime_*

Actual result:
--------------
VGA PCI controller does not suspend

Expected result:
----------------
Status indicates "suspended" and the counter increases

Info:
-----
Reproduced in txt mode
Reproduced with kernel mainline 4.4-rc1 from https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?id=refs/tags/v4.4-rc1
Not reproduced with kernel mainline 4.3, the controller suspends at step 4
Comment 1 Imre Deak 2015-11-19 15:16:40 UTC
After resuming and observing that runtime_suspended_time doesn't increase, could you also provide the contents of

/sys/bus/pci/devices/0000:00:02.0/power/runtime_usage

and if that's not zero also

/sys/kernel/debug/dri/0/i915_power_domain_info ?

Does the issue happen if the audio driver is unloaded?
Comment 2 Imre Deak 2015-11-20 11:45:21 UTC
(In reply to Imre Deak from comment #1)
> After resuming and observing that runtime_suspended_time doesn't increase,
> could you also provide the contents of
> 
> /sys/bus/pci/devices/0000:00:02.0/power/runtime_usage
> 
> and if that's not zero also
> 
> /sys/kernel/debug/dri/0/i915_power_domain_info ?
> 
> Does the issue happen if the audio driver is unloaded?

Ok, I commented without checking the dmesg log properly. Please retest using the latest firmware:

[    3.706008] [drm:intel_csr_ucode_init] Loading i915/skl_dmc_ver1.bin
[    3.707891] [drm] Refusing to load old Skylake DMC firmware v1.22, please upgrade to v1.23 or later [https://01.org/linuxgraphics/intel-linux-graphics-firmwares].
[    3.707955] [drm:csr_load_work_fn [i915]] *ERROR* Failed to load DMC firmware, disabling rpm
Comment 3 cprigent 2015-11-20 14:25:17 UTC
Reproduced with firmware DMC 1.23

cat /sys/bus/pci/devices/0000:00:02.0/power/runtime_usage returns 4

Reproduced after unloading audio driver (note that audio controler is successfully suspended):
su -c 'echo 0000:00:1f.3 > /sys/bus/pci/drivers/snd_hda_intel/unbind'
modprobe -r snd_hda_intel
lsmod |grep snd_hda_intel
grep . /sys/bus/pci/devices/0000\:00\:*/power/runtime_status /sys/bus/pci/devices/0000\:00\:*/power/runtime_suspended_time
/sys/bus/pci/devices/0000:00:02.0/power/runtime_status:active
/sys/bus/pci/devices/0000:00:02.0/power/runtime_suspended_time:0
Comment 4 Imre Deak 2015-11-20 15:11:47 UTC
(In reply to cprigent from comment #3)
> Reproduced with firmware DMC 1.23
> 
> cat /sys/bus/pci/devices/0000:00:02.0/power/runtime_usage returns 4

Could you provide a new dmesg and the contents of
/sys/kernel/debug/dri/0/i915_power_domain_info
Comment 5 cprigent 2015-11-23 17:24:29 UTC
There was a typo in the kernel boot command line.
I confirm it works with firmware DMC 1.23 and kernel boot command line i915.disable_power_well=1.
Comment 6 cprigent 2015-11-23 17:25:02 UTC
DMC 1.23 fixes the problem. So closed.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.