summaryrefslogtreecommitdiff
path: root/usr/src/uts/i86pc/io/psm/uppc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/i86pc/io/psm/uppc.c')
-rw-r--r--usr/src/uts/i86pc/io/psm/uppc.c12
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();
}