diff options
Diffstat (limited to 'usr/src/uts/i86pc/io/psm/uppc.c')
-rw-r--r-- | usr/src/uts/i86pc/io/psm/uppc.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/usr/src/uts/i86pc/io/psm/uppc.c b/usr/src/uts/i86pc/io/psm/uppc.c index 27cb6a6a22..51181b0415 100644 --- a/usr/src/uts/i86pc/io/psm/uppc.c +++ b/usr/src/uts/i86pc/io/psm/uppc.c @@ -473,11 +473,15 @@ uppc_shutdown(int cmd, int fcn) if ((cmd != A_SHUTDOWN) || (!uppc_enable_acpi)) return; - /* switch system back into Legacy Mode */ - (void) AcpiDisable(); - - if (fcn != AD_POWEROFF) + /* + * Switch system back into Legacy-Mode if using ACPI and + * not powering-off. Some BIOSes need to remain in ACPI-mode + * for power-off to succeed (Dell Dimension 4600) + */ + if (fcn != AD_POWEROFF) { + (void) AcpiDisable(); return; + } (void) acpi_poweroff(); } |