Portál AbcLinuxu, 2. května 2025 07:16

Suspend s nvidií a 2.6.14

15.11.2005 16:08 | Přečteno: 1012× | Linux | poslední úprava: 15.11.2005 16:14

Kernel 2.6.14 konečně vyřešil můj problém s memory leakem kdesi v ACPI, takže nezbylo než upgradovat :-). Ovšem nvidiacký modul se poté zuřivě bránil suspendu do paměti, přestože to dříve fungovalo.

Samozřejmě řešení je jednoduché, stačí se podívat, jaké eventy se posílají:

/*
 * There are 4 important states driver can be in:
 * ON     -- driver is working
 * FREEZE -- stop operations and apply whatever policy is applicable to a
 *           suspended driver of that class, freeze queues for block like IDE
 *           does, drop packets for ethernet, etc... stop DMA engine too etc...
 *           so a consistent image can be saved; but do not power any hardware
 *           down.
 * SUSPEND - like FREEZE, but hardware is doing as much powersaving as
 *           possible. Roughly pci D3.
 *
 * Unfortunately, current drivers only recognize numeric values 0 (ON) and 3
 * (SUSPEND).  We'll need to fix the drivers. So yes, putting 3 to all different
 * defines is intentional, and will go away as soon as drivers are fixed.  Also
 * note that typedef is neccessary, we'll probably want to switch to
 *   typedef struct pm_message_t { int event; int flags; } pm_message_t
 * or something similar soon.
 */

A příslušně opravit nvidiácké zdrojáky:

--- orig/nv/nv.c  2005-07-19 01:58:40.000000000 +0200
+++ mod/nv/nv.c        2005-11-15 15:28:46.500089000 +0100
@@ -3624,12 +3624,13 @@
 
     switch (state)
     {
-        case PM_SUSPEND_MEM:
+        case PM_EVENT_SUSPEND:
+        case PM_EVENT_FREEZE:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received suspend event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
             break;
 
-        case PM_SUSPEND_ON:
+        case PM_EVENT_ON:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received resume event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_RESUME);
             break;
       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

.. avatar 15.11.2005 16:35 .. | skóre: 4 | blog:
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
Odpovědět | Sbalit | Link | Blokovat | Admin
Ja osobne jeste upravuju nv.c tak ze (v mistech kde Tvuj patch odebira PM_SUSPEND_MEM) pridavam : case PM_SUSPEND_STANDBY:

Potom funguje i uspani na disk, coz je prome jeste dulezitejsi nez uspani do RAM. Ale i tohle urcite zkusim

15.11.2005 18:23 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
Protože to mělo shodou okolností dřív stejné hodnoty, tak to vyšlo na stejno :-)
Luboš Doležel (Doli) avatar 15.11.2005 17:54 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm, mě nefunguje suspend (suspend2 ani suspend2ram) ani pod init 1, protože kernel se po resume zhroutí. Docela by mě zajímalo, kolika procentům lidí tohle funguje.

A ne, tohle mi neblbne na nějakém Acer notebooku, ale na stolním PC (Award BIOS).
15.11.2005 18:23 Libor Klepac | skóre: 45 | Mýto
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
me to funguje ... na notebooku ;) (omnibook xe3)
Urine should only be green if you're Mr. Spock.
15.11.2005 18:24 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
Suspend to ram mi funguje na notebooku v pohodě. Na disk jsem už delší dobu nezkoušel, ale chodil mi.
Luboš Doležel (Doli) avatar 15.11.2005 18:33 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Suspend s nvidií a 2.6.14
Hmm, já si musím rozsvítit monitor pomocí VBETOOL a pak tam na mě stejně čeká poškozený obraz konzole s neblikajícím kurzorem...SysRq fungují, ale v logu není nic.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.