Bug 15506 - Suspend/resume problem
Summary: Suspend/resume problem
Status: RESOLVED WONTFIX
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nVidia (open) (show other bugs)
Version: 7.1 (2006.05)
Hardware: Other All
: medium normal
Assignee: Aaron Plattner
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-14 13:42 UTC by Anton Solovyev
Modified: 2012-01-22 12:30 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Anton Solovyev 2008-04-14 13:42:24 UTC
Centos 5.1

===
(II) Module nv: vendor="X.Org Foundation"
        compiled for 7.1.1, module version = 2.1.2
        Module class: X.Org Video Driver
        ABI class: X.Org Video Driver, version 1.0
===

No video output (black screen) after suspend and resume. The card is ASUS Nvidia 8600GTS. Same as another bug closed as "resolved". Does not seem to be.
Comment 1 Aaron Plattner 2008-04-21 10:11:46 UTC
Suspend & resume in the nv driver is an interesting challenge.  It's being worked on, but I can't promise a timeline for when it might get fixed.
Comment 2 Anton Solovyev 2008-04-21 10:14:07 UTC
Is there a workaround by any chance? Load/unload a module? Some sort of video re-init after resume?
Comment 3 Aaron Plattner 2008-04-21 10:24:57 UTC
The main problem is that system BIOSes are notorious for leaving the hardware in a variety of completely wacky states after resume.  The nv driver relies on the card being POSTed to text mode before it initializes graphics.  If you're very lucky, you can use vbetool to POST the card on resume, but your mileage may vary.

By the way, please attach a complete Xorg.0.log from your system with nv 2.1.8.
Comment 4 William Anderson 2009-04-17 11:33:11 UTC
I had the same issue using the nv driver on a Dell Inspiron 8600 laptop running the preview/debug version of Ubuntu 9.4. I was able to fix the problem by removing all quirk definitions for this laptop in the /usr/share/hal/   /20...dell.fdi. 

By default the -quirk-s3-bios and -quirk-s3-mode were enabled. With both the laptop would freeze at a blank screen with a flashing cursor with the back light on. With either quirk option alone, the laptop would resume, accept commands, and be accessible over the network, but the back light would not come on. Adding the -quirk-dpms-on option did nothing. The only way to try no quirk options seems to be to edit the .fdi file and disable the quirks that match my laptop. With no quirk options, my laptop suspends with no problems, and the Ubuntu check box sleep test script ran with no problems. 

You might visit the Free Desktop hal quirks page at http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html and try the various combinations of quirk options, as well as no quirks, and see if any of these fixes the problems. 

Note that that site claims that running the pm-suspend command by hand without any options does not use the hal fdi quirks, but in my testing this was not the case. The pm-suspend.log file, which lists the quirk command line parameters showed the matching quirk options from the fdi file when the command was run with no parameters. 

Hopefully this helps with troubleshooting your suspend problems.

William



Comment 5 Karl Palsson 2009-12-06 05:51:06 UTC
(In reply to comment #4)
> I had the same issue using the nv driver on a Dell Inspiron 8600 laptop running
> 
> By default the -quirk-s3-bios and -quirk-s3-mode were enabled. With both the
> laptop would freeze at a blank screen with a flashing cursor with the back
> light on. With either quirk option alone, the laptop would resume, accept
> commands, and be accessible over the network, but the back light would not come
> on. Adding the -quirk-dpms-on option did nothing. The only way to try no quirk
> options seems to be to edit the .fdi file and disable the quirks that match my
> laptop. With no quirk options, my laptop suspends with no problems, and the
> Ubuntu check box sleep test script ran with no problems. 


I don't know where best to submit this, but it applies to the current hal quirks db, as well as the pm-utils quirksdb released in http://lists.freedesktop.org/archives/devkit-devel/2009-December/000591.html

Dell inspiron 8600's were available with (at least) 2 different graphics cards, which need different quirks modes.  Someone, sometime ago, submitted the s3bios and s3 mode quirks as being for an 8600, and the current quirks dbs for both hal and pm-utils apply this for _all_ 8600s.  The following patch applies vbe_post for nvidia cards (works for my 8600 with the nvidia go5200) and leaves the original settings for non nvidia drivers.

 diff -c 20-video-quirk-pm-dell.fdi /home/karl/20-video-quirk-pm-dell.fdi 
*** 20-video-quirk-pm-dell.fdi	2009-07-16 10:37:09.000000000 +0000
--- /home/karl/20-video-quirk-pm-dell.fdi	2009-12-06 13:49:49.000000000 +0000
***************
*** 55,62 ****
        <!-- Dell Inspiron -->
        <match key="system.hardware.product" prefix="Inspiron">
          <match key="system.hardware.product" contains_outof="1501;8600">
!           <merge key="power_management.quirk.s3_bios" type="bool">true</merge>
!           <merge key="power_management.quirk.s3_mode" type="bool">true</merge>
          </match>
          <match key="system.hardware.product" contains="9300">
            <merge key="power_management.quirk.s3_bios" type="bool">true</merge>
--- 55,68 ----
        <!-- Dell Inspiron -->
        <match key="system.hardware.product" prefix="Inspiron">
          <match key="system.hardware.product" contains_outof="1501;8600">
! 	  <!-- different types of cards were available, which need their own quirks -->
! 	  <match key="system.hardware.primary_video.vendor" contains="10de"><!-- nvidia-->
! 	    <merge key="power_management.quirk.vbe_post" type="bool">true</merge>
! 	  </match>
! 	  <match key="system.hardware.primary_video.vendor" contains_not="10de">
! 	    <merge key="power_management.quirk.s3_bios" type="bool">true</merge>
! 	    <merge key="power_management.quirk.s3_mode" type="bool">true</merge>
! 	  </match>
          </match>
          <match key="system.hardware.product" contains="9300">
            <merge key="power_management.quirk.s3_bios" type="bool">true</merge>
karl@whirl:~/src/hal/usr/share/hal/fdi/information/10freedesktop$ 


This can't be any worse than the current settings, which kill my system if it enters suspend :)


Comment 6 Karl Palsson 2009-12-06 05:55:18 UTC
Relevant lines in new quirksdb...

 match system.hardware.product regex ^Inspiron
   match system.hardware.product regex 1501;8600
    addquirk --quirk-s3-bios
    addquirk --quirk-s3-mode
   endmatch

But I can't/won't test out new pm-utils on this system.

This probably affects a lot more laptops than just the 8600, scanning through all the fdi files to see if there was any way to use the video card type to do further matching shows that very very few of the laptop configs have a different setting for each video card, most of them just blanket set the quirks for all versions of the laptop.   I would hazard a guess at saying this has really led to far more suspend problems in linux than we give it credit for.
Comment 7 Corbin Simpson 2012-01-22 12:30:33 UTC
Nobody is supporting xf86-video-nv and it will be going away at some point in the future. If your problem persists with nouveau or the proprietary driver provided by nVidia, please re-file accordingly. We apologize for the inconvenience.

This is part of an automated bulk action; if you believe that this bug was closed in error, then change the targeted component and reopen it.


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.