On S1 suspend, attached monitor does not enter low power state Platform: Computer: Dell Dimension 4100 circa 2001 Graphics card: NVIDIA MX420, P17, AGP 4x, circa 2002-2003 Distribution: Debian Wheezy with LXDE and nouveau graphics driver Symptoms: Once the computer is suspended, the attached monitor should also enter its low power state (signified by the blue power led turning orange). This happens properly when suspending Windows XP but does not happen when suspending Debian Wheezy. With Debian Wheezy, the monitor first goes blank but not completely dark. After a few seconds, the monitor fades from mostly dark to completely dark but the power led remains blue when it should change to amber. The machine wakes properly from the S1 suspend state. I am new to linux but I believe that this problem is related to the nouveau driver. The monitor can be placed into its low power state with xset. Also, if the pm-util 99video shell script is modified to xset the monitor to its low power state when suspending, it will go into that state but will awake once the nouveau kernel module does its suspend stuff. See attachment. The Dimension 4100 enters the S1 state upon suspend, S3 is not supported. This behavior is identical with both Windows XP and Debian Wheezy. Current draw in the S1 state is .20A under Windows XP and .25A with Wheezy. The current draw difference may not be related to the graphics card but it is interesting nevertheless. I have looked for related bugs but can't find any. I believe, however, that this problem may be common but just overlooked. It appears that most people are interested in major failures like kernel panics and what not. Additional information: The attached monitor can be put into its low power state by use of xset: xset dpms force off However, if this is done in /usr/lib/pm-utils/sleep.d/99video as below, the monitor will initially go into low power state when the xset command is executed. After the subsequent 10 second sleep, when the kernel actually suspends, the monitor wakes from the low power state. Below I've attached: 1) Modified pm-utils 99video shell script 2) Resulting pm-suspend.log 3) Resulting output of dmesg 4) nouveau related messages from boot time. Changes to /usr/lib/pm-utils/sleep.d/99video Added at end of suspend_video() { . . . echo "trying xset dpms force off" xset dpms force off sleep 10 } From /var/log/pm-suspend.log: /usr/lib/pm-utils/sleep.d/98video-quirk-db-handler suspend suspend: success. Running hook /usr/lib/pm-utils/sleep.d/99video suspend suspend: acpi_flags: 0 kernel.acpi_video_flags = 0 trying xset dpms force off /usr/lib/pm-utils/sleep.d/99video suspend suspend: success. Wed Mar 27 09:38:24 PDT 2013: performing suspend Wed Mar 27 09:38:42 PDT 2013: Awake. From dmesg: [ 3035.824062] PM: Entering standby sleep [ 3035.824106] Suspending console(s) (use no_console_suspend to debug) [ 3035.864274] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 3035.864473] sd 0:0:0:0: [sda] Stopping disk [ 3035.877422] parport_pc 00:09: disabled [ 3035.877550] serial 00:08: disabled [ 3035.877601] serial 00:08: wake-up capability disabled by ACPI [ 3035.878716] ACPI handle has no context! [ 3035.879418] pci 0000:00:1e.0: wake-up capability enabled by ACPI [ 3035.879455] [drm] nouveau 0000:01:00.0: Disabling fbcon acceleration... [ 3035.879462] [drm] nouveau 0000:01:00.0: Unpinning framebuffer(s)... [ 3035.879504] [drm] nouveau 0000:01:00.0: Evicting buffers... [ 3035.989437] [drm] nouveau 0000:01:00.0: Idling channels... [ 3035.990058] [drm] nouveau 0000:01:00.0: Suspending GPU objects... [ 3035.994566] [drm] nouveau 0000:01:00.0: And we're gone! [ 3036.224535] PM: suspend of devices complete after 400.170 msecs [ 3036.224776] pci 0000:00:1e.0: wake-up capability enabled by ACPI [ 3036.240091] pci 0000:00:1e.0: wake-up capability enabled by ACPI [ 3036.256078] pci 0000:00:1e.0: wake-up capability enabled by ACPI [ 3036.272099] uhci_hcd 0000:00:1f.2: wake-up capability enabled by ACPI [ 3036.272211] PM: late suspend of devices complete after 47.666 msecs [ 3036.272389] ACPI: Preparing to enter system sleep state S1 [ 3036.272815] PM: Saving platform NVS memory [ 3036.273014] Disabling non-boot CPUs ... [ 3036.275093] PM: Restoring platform NVS memory [ 3036.276020] ACPI: Waking up from system sleep state S1 [ 3036.276020] uhci_hcd 0000:00:1f.2: wake-up capability disabled by ACPI [ 3036.320084] pci 0000:00:1e.0: wake-up capability disabled by ACPI [ 3036.336083] pci 0000:00:1e.0: wake-up capability disabled by ACPI [ 3036.352084] pci 0000:00:1e.0: wake-up capability disabled by ACPI [ 3036.384219] PM: early resume of devices complete after 109.485 msecs [ 3036.384621] pci 0000:00:1e.0: setting latency timer to 64 [ 3036.384647] ata_piix 0000:00:1f.1: setting latency timer to 64 [ 3036.384690] uhci_hcd 0000:00:1f.2: setting latency timer to 64 [ 3036.384716] usb usb1: root hub lost power or was reset [ 3036.384738] [drm] nouveau 0000:01:00.0: We're back, enabling device... [ 3036.384762] [drm] nouveau 0000:01:00.0: POSTing device... [ 3036.385427] [drm] nouveau 0000:01:00.0: Loading NV17 power sequencing microcode [ 3036.385438] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xC70A [ 3036.385502] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xC9C3 [ 3036.385556] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xC801 [ 3036.385675] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xCEC6 [ 3036.385697] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xC95E [ 3036.385712] agpgart-intel 0000:00:00.0: AGP 2.0 bridge [ 3036.385739] agpgart-intel 0000:00:00.0: putting AGP V2 device into 4x mode [ 3036.385767] nouveau 0000:01:00.0: putting AGP V2 device into 4x mode [ 3036.385814] [drm] nouveau 0000:01:00.0: Restoring GPU objects... [ 3036.386299] [drm] nouveau 0000:01:00.0: Reinitialising engines... [ 3036.386338] [drm] nouveau 0000:01:00.0: Restoring mode... [ 3037.016221] sd 0:0:0:0: [sda] Starting disk [ 3037.019614] serial 00:08: activated [ 3037.020669] parport_pc 00:09: activated [ 3037.069977] pci 0000:00:1e.0: wake-up capability disabled by ACPI [ 3037.124043] [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on TV encoder (output 1) [ 3037.168447] ACPI Error: Attempt to CreateField of length zero (20110623/dsopcode-168) [ 3037.168464] ACPI Error: Method parse/execution failed [\_SB_.PCI0.IDE0.RATA] (Node de826ad0), AE_AML_OPERAND_VALUE (20110623/psparse-536) [ 3037.168490] ACPI Error: Method parse/execution failed [\_SB_.PCI0.IDE0.CHN0.DRV0._GTF] (Node de826d58), AE_AML_OPERAND_VALUE (20110623/psparse-536) [ 3037.168519] ata1.00: _GTF evaluation failed (AE 0x3004) [ 3037.180328] ata2.00: ACPI cmd ef/03:42:00:00:00:a0 (SET FEATURES) filtered out [ 3037.180340] ata2.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out [ 3037.184368] ata1.00: configured for UDMA/100 [ 3037.196210] ata2.00: configured for UDMA/33 [ 3037.380060] ata4: SATA link down (SStatus 0 SControl 310) [ 3037.380102] ata3: SATA link down (SStatus 0 SControl 310) [ 3041.092055] b43-phy0: Loading firmware version 666.2 (2011-02-23 01:15:07) [ 3041.168523] PM: resume of devices complete after 4784.217 msecs [ 3041.168770] PM: Finishing wakeup. [ 3041.168776] Restarting tasks ... done. nouveau dmesg output from boot: [ 19.845604] [drm] nouveau 0000:01:00.0: Detected an NV10 generation card (0x017200a3) [ 19.845947] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN [ 19.894086] [drm] nouveau 0000:01:00.0: ... appears to be valid [ 19.894729] [drm] nouveau 0000:01:00.0: BMP BIOS found [ 19.894736] [drm] nouveau 0000:01:00.0: BMP version 5.20 [ 19.894745] [drm] nouveau 0000:01:00.0: Bios version 04.17.00.24 [ 19.894755] [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 2.0 [ 19.894766] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 01000100 000088b8 [ 19.894776] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02010311 00000303 [ 19.895307] [drm] nouveau 0000:01:00.0: Loading NV17 power sequencing microcode [ 19.895318] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xC70A [ 19.895377] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xC9C3 [ 19.895421] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xC801 [ 19.896309] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xCEC6 [ 19.896334] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xC95E [ 19.918369] [drm] nouveau 0000:01:00.0: 0 available performance level(s) [ 19.918394] [drm] nouveau 0000:01:00.0: c: core 249MHz memory 333MHz [ 19.918661] [TTM] Zone kernel: Available graphics memory: 257102 kiB. [ 19.918667] [TTM] Initializing pool allocator. [ 19.918704] [drm] nouveau 0000:01:00.0: Detected 64MiB VRAM [ 19.919019] agpgart-intel 0000:00:00.0: AGP 2.0 bridge [ 19.919053] agpgart-intel 0000:00:00.0: putting AGP V2 device into 4x mode [ 19.919084] nouveau 0000:01:00.0: putting AGP V2 device into 4x mode [ 19.919132] [drm] nouveau 0000:01:00.0: 64 MiB GART (aperture) [ 19.919250] [drm] nouveau 0000:01:00.0: Saving VGA fonts [ 19.980406] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). [ 19.980418] [drm] No driver support for vblank timestamp query. [ 19.980437] [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on TV encoder (output 1) [ 20.141483] [drm] nouveau 0000:01:00.0: allocated 1920x1200 fb: 0x49000, bo dd62a800 [ 20.144925] fbcon: nouveaufb (fb0) is primary device [ 20.146858] Console: switching to colour frame buffer device 240x75 [ 20.146893] fb0: nouveaufb frame buffer device [ 20.146898] drm: registered panic notifier [ 20.146924] [drm] Initialized nouveau 1.0.0 20120316 for 0000:01:00.0 on minor 0