Bug 29441 - [PNV SDVO] DPMS does not power off monitor
Summary: [PNV SDVO] DPMS does not power off monitor
Status: CLOSED WORKSFORME
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-07 15:11 UTC by Brian Hall
Modified: 2017-07-24 23:07 UTC (History)
6 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Output of "xrandr --verbose" (4.62 KB, text/plain)
2010-08-07 15:11 UTC, Brian Hall
no flags Details
dmesg output, drm.debug=0xc, from boot until just prior to DPMS poweroff attempt (57.89 KB, text/plain)
2010-08-07 15:13 UTC, Brian Hall
no flags Details
dmesg output, drm.debug=0xc, DPMS poweroff attempt (1.31 KB, text/plain)
2010-08-07 15:14 UTC, Brian Hall
no flags Details
register state prior to forcing DMPS off (8.74 KB, text/plain)
2010-08-07 15:16 UTC, Brian Hall
no flags Details
register state after forcing DMPS off (8.74 KB, text/plain)
2010-08-07 15:17 UTC, Brian Hall
no flags Details
dmesg output, drm.debug=0xc, xset dpms force off (773 bytes, text/plain)
2010-08-08 07:17 UTC, Brian Hall
no flags Details
register state prior to xset dpms force off (8.84 KB, text/plain)
2010-08-08 07:22 UTC, Brian Hall
no flags Details
register state after xset dpms force off (8.84 KB, text/plain)
2010-08-08 07:24 UTC, Brian Hall
no flags Details
xorg log, using xf86-video-intel-git 20100808-1 (25.07 KB, text/plain)
2010-08-08 07:56 UTC, Brian Hall
no flags Details
enable sdvo dpms code (1.33 KB, patch)
2012-04-15 05:02 UTC, Daniel Vetter
no flags Details | Splinter Review

Description Brian Hall 2010-08-07 15:11:27 UTC
Created attachment 37677 [details]
Output of "xrandr --verbose"

I have a nice little Atom motherboard, the D510MO, with the integrated Pineview graphics (GMA 3150). Everything works fine, but my LCD monitor never turns off. "xset dpms force suspend" turns off the screen image, but the monitor stays in "on mode", and after a few seconds the monitor says "Cable not connected". LCD turns off just fine with dpms suspend from other video cards. "xset dpms force suspend|off|standby" all have the same result: monitor behavior identical to unplugging the VGA cable, displaying a cable not connected message, and not turning off.

I have installed the latest driver, xf86-video-intel-newest 2.12.0-1, but that didn't change the DPMS issue. Neither did updating the BIOS (currently v0303).

Reproduced problem with three different monitors:
LCD: Acer X203H
CRT: HP Pavilion v50 P1287B
CRT: Tatung C9D1E-T05

> uname -a
Linux brain 2.6.35-ARCH #1 SMP PREEMPT Mon Aug 2 21:54:18 CEST 2010 x86_64 Intel(R) Atom(TM) CPU D510 @ 1.66GHz GenuineIntel GNU/Linux

xf86-video-intel-newest 2.12.0-1
xorg-server 1.8.1.902-1

Using the autodefault xorg config (no /etc/X11/xorg.conf file). DPMS itself appears to be enabled and thinks it's "working".

# grep -i DPMS /var/log/Xorg.0.log
[    87.339] (II) Loading extension DPMS
[    87.663] (II) intel(0): DPMS capabilities: StandBy Suspend; RGB/Color Display
[    87.717] (==) intel(0): DPMS enabled

00:02.0 VGA compatible controller: Intel Corporation Pineview Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation Device 4f4d
        Flags: bus master, fast devsel, latency 0, IRQ 47
        Memory at f0200000 (32-bit, non-prefetchable) [size=512K]
        I/O ports at 20c0 [size=8]
        Memory at e0000000 (32-bit, prefetchable) [size=256M]
        Memory at f0100000 (32-bit, non-prefetchable) [size=1M]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Kernel driver in use: i915
        Kernel modules: i915

Issue appears similar to bug # 20294, which was resolved as fixed.
https://bugs.freedesktop.org/show_bug.cgi?id=20294
Comment 1 Brian Hall 2010-08-07 15:13:46 UTC
Created attachment 37678 [details]
dmesg output, drm.debug=0xc, from boot until just prior to DPMS poweroff attempt
Comment 2 Brian Hall 2010-08-07 15:14:54 UTC
Created attachment 37679 [details]
dmesg output, drm.debug=0xc, DPMS poweroff attempt

sleep 2; xset dpms force suspend ; sleep 2; dmesg > dmesg.drm.powerdown.txt
Comment 3 Brian Hall 2010-08-07 15:16:20 UTC
Created attachment 37680 [details]
register state prior to forcing DMPS off

intel_reg_dumper > /down/intel/intel_reg_dumper.before.dpms.off.txt
Comment 4 Brian Hall 2010-08-07 15:17:24 UTC
Created attachment 37681 [details]
register state after forcing DMPS off

sleep 2; xset dpms force suspend ; sleep 2; intel_reg_dumper > /down/intel/intel_reg_dumper.after.dpms.off.txt
Comment 5 Chris Wilson 2010-08-08 02:59:18 UTC
Ah, I see one issue here: suspend/standby just blanks the output, the driver doesn't have the concept of any other state than on/off. The kernel output shows that the pipe is still active and 'xset dpms force suspend' triggered no events.
Can you repeat your test with 'xset dpms force off' to check that driver can at least turn off your monitor...

(Are you sure you mean bug 20924 that is still open?)
Comment 6 Chris Wilson 2010-08-08 03:00:34 UTC
(In reply to comment #5)
> (Are you sure you mean bug 20924 that is still open?)
*bug 20294
Comment 7 Brian Hall 2010-08-08 06:53:40 UTC
(In reply to comment #5)
> Ah, I see one issue here: suspend/standby just blanks the output, the driver
> doesn't have the concept of any other state than on/off. The kernel output
> shows that the pipe is still active and 'xset dpms force suspend' triggered no
> events.
> Can you repeat your test with 'xset dpms force off' to check that driver can at
> least turn off your monitor...
> 
> (Are you sure you mean bug 20924 that is still open?)

Doesn't matter what option I give to xset dpms, it won't turn off the monitor at all. Tried with no success:

xset dpms force suspend
xset dpms force off
xset dpms force standby

These all gave the same result: screen blanks, no video, monitor does NOT turn off.

I would add that I've been using "xset dpms force suspend" for years to turn off my monitors, LCD & CRT, and I've never had a problem until using the GMA 3150.

Also, the screen blanks fine with "xset dpms force suspend" on my Acer Aspire One netbook, which is running Arch Linux 32-bit, kernel 2.6.34, xorg-server 1.8.1.902, and xf86-video-intel 2.12. It has Intel 945 graphics but uses the 915 driver:

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03) (prog-if 00 [VGA controller])
        Subsystem: Acer Incorporated [ALI] Device 015b
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at 58480000 (32-bit, non-prefetchable) [size=512K]
        I/O ports at 60c0 [size=8]
        Memory at 40000000 (32-bit, prefetchable) [size=256M]
        Memory at 58500000 (32-bit, non-prefetchable) [size=256K]
        Expansion ROM at <unassigned> [disabled]
        Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 2
        Kernel driver in use: i915
        Kernel modules: i915
Comment 8 Brian Hall 2010-08-08 07:17:49 UTC
Created attachment 37699 [details]
dmesg output, drm.debug=0xc, xset dpms force off

sleep 2; xset dpms force off ; sleep 2; dmesg > dmesg.drm.off.txt
Comment 9 Brian Hall 2010-08-08 07:22:52 UTC
Created attachment 37700 [details]
register state prior to xset dpms force off

intel_reg_dumper > /down/intel/intel_reg_dumper.before.force.off.txt
Comment 10 Brian Hall 2010-08-08 07:24:30 UTC
Created attachment 37701 [details]
register state after xset dpms force off

sleep 2; xset dpms force off  ; sleep 2; intel_reg_dumper > /down/intel/intel_reg_dumper.after.force.off.txt
Comment 11 Brian Hall 2010-08-08 07:29:23 UTC
Even though I think "xf86-video-intel 2.12.0-1" and "xf86-video-intel-newest 2.12.0-1" are the same, I switched my system to the mainline packaged "xf86-video-intel 2.12.0-1" anyway. No change in the problem. (Arch64 distribution)
Comment 12 Brian Hall 2010-08-08 07:52:40 UTC
Used Arch's yaourt build system to install the latest Intel driver from git (xf86-video-intel-git 20100808-1). Monitor still does not turn off with "xset dpms force off" or "xset dpms force suspend".
Comment 13 Brian Hall 2010-08-08 07:56:53 UTC
Created attachment 37703 [details]
xorg log, using xf86-video-intel-git 20100808-1
Comment 14 Chris Wilson 2010-08-08 07:58:16 UTC
Thanks for the clarification.
Comment 15 Chris Wilson 2010-08-08 08:03:23 UTC
As expected according to the registers the display should be completely off...

Is this isolated to this single display? And the display powers down with other cards?
Comment 16 Brian Hall 2010-08-08 08:30:49 UTC
(In reply to comment #15)
> As expected according to the registers the display should be completely off...
> 
> Is this isolated to this single display? And the display powers down with other
> cards?

Reproduced problem with three different monitors:
LCD: Acer X203H
CRT: HP Pavilion v50 P1287B
CRT: Tatung C9D1E-T05

I just use a single display (no Xinerama or anything).

LCD display powered down fine with my previous PCs (939 systems w/ Radeon AGP).

This D510MO motherboard only has a single expansion slot, and it is PCI. I'll dig out an old PCI video card and try again. I don't have an Intel PCI video card to try it- I have a couple of old Matrox cards and an Nvidia card.
Comment 17 Chris Wilson 2010-08-08 08:33:33 UTC
That's sufficient, just wanted to rule out the display not noticing the link being turned off and powering itself down correctly. Thanks.
Comment 18 Chris Wilson 2010-08-08 10:12:29 UTC
Hmm, we have code to turn off the SDVO encoder (and presumably that may be communicated to the display) that we do not use.

Since intel_sdvo_set_encoder_power_state() has never been enabled in KMS, there is no record of why it is not used.
Comment 19 Brian Hall 2010-08-08 10:46:50 UTC
(In reply to comment #18)
> Hmm, we have code to turn off the SDVO encoder (and presumably that may be
> communicated to the display) that we do not use.
> 
> Since intel_sdvo_set_encoder_power_state() has never been enabled in KMS, there
> is no record of why it is not used.

Interesting. My netbook display does turn off with xset dpms force suspend (or off), and it is using xf86-video-intel 2.12 and KMS. The underlying hardware is different (945 vs 915), but is the code path identical in this case (for DPMS suport)? Both are using KMS and the i915/intel driver.

So, does this indicate the problem is with my hardware?
Comment 20 Brian Hall 2010-08-08 11:27:19 UTC
Cross-reference to my new thread on the Intel community forum, in case this is a hardware problem:

D510MO DPMS problem, monitor does not turn off

http://communities.intel.com/thread/14970
Comment 21 Chris Wilson 2010-08-08 11:58:53 UTC
(In reply to comment #19) 
> So, does this indicate the problem is with my hardware?

Just a discrepancy. It's highly unusual for this to not work (it works on all my PineView boxes for instance). But your hardware may well be within spec and the code still be broken and yet work for most machines.
Comment 22 Chris Wilson 2010-09-10 16:10:04 UTC
I have a similar issue with my T61 [i965] which fails to power-off a Dell P2210H over DVI.
Comment 23 Daniel Vetter 2012-04-15 05:02:17 UTC
Created attachment 60011 [details] [review]
enable sdvo dpms code

Can you (or anyone else with an sdvo output card) please test this patch?
Comment 24 Daniel Vetter 2012-11-13 13:31:07 UTC
Chris, can you give the attached patch a shot on your problematic T61 with DVI-out? Original reporter seems to be awol ...
Comment 25 Chris Wilson 2012-11-13 14:47:12 UTC
* shrug. 

The monitor is currently turning off using 3.7+dinq. So presuming it will also work for the original reporter...


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.