--- arch/i386/kernel/apm.c +++ arch/i386/kernel/apm.c Wed Aug 14 09:50:40 2002 @@ -383,6 +383,7 @@ static int allow_ints; #endif static int broken_psr; +static int nvram_off; static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue); static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue); @@ -1769,6 +1770,8 @@ if (power_off) pm_power_off = apm_power_off; register_sysrq_key('o', &sysrq_poweroff_op); + if (nvram_off) + apm_power_off(); if (smp_num_cpus == 1) { #if defined(CONFIG_APM_DISPLAY_BLANK) && defined(CONFIG_VT) @@ -1797,6 +1800,9 @@ if ((strncmp(str, "bounce-interval=", 16) == 0) || (strncmp(str, "bounce_interval=", 16) == 0)) bounce_interval = simple_strtol(str + 16, NULL, 0); + if ((strncmp(str, "nvram_off", 9) == 0) || + (strncmp(str, "nvram-off", 9) == 0)) + nvram_off = 1; invert = (strncmp(str, "no-", 3) == 0); if (invert) str += 3; @@ -2013,5 +2019,7 @@ MODULE_PARM(realmode_power_off, "i"); MODULE_PARM_DESC(realmode_power_off, "Switch to real mode before powering off"); +MODULE_PARM(nvram_off, "i"); +MODULE_PARM_DESC(nvram_off, "Used by nvram-wakeup for immediat power off (no boot)"); EXPORT_NO_SYMBOLS;