diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/intel/io/acpica/hardware/hwsleep.c | 18 | ||||
-rw-r--r-- | usr/src/uts/intel/io/acpica/osl.c | 13 |
2 files changed, 23 insertions, 8 deletions
diff --git a/usr/src/uts/intel/io/acpica/hardware/hwsleep.c b/usr/src/uts/intel/io/acpica/hardware/hwsleep.c index 32a7934636..51f947528b 100644 --- a/usr/src/uts/intel/io/acpica/hardware/hwsleep.c +++ b/usr/src/uts/intel/io/acpica/hardware/hwsleep.c @@ -345,10 +345,13 @@ AcpiEnterSleepState ( if (SleepState != ACPI_STATE_S5) { - /* Disable BM arbitration */ - + /* + * Disable BM arbitration. This feature is contained within an + * optional register (PM2 Control), so ignore a BAD_ADDRESS + * exception. + */ Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 1); - if (ACPI_FAILURE (Status)) + if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS)) { return_ACPI_STATUS (Status); } @@ -683,10 +686,13 @@ AcpiLeaveSleepState ( AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].StatusRegisterId, ACPI_CLEAR_STATUS); - /* Enable BM arbitration */ - + /* + * Enable BM arbitration. This feature is contained within an + * optional register (PM2 Control), so ignore a BAD_ADDRESS + * exception. + */ Status = AcpiWriteBitRegister (ACPI_BITREG_ARB_DISABLE, 0); - if (ACPI_FAILURE (Status)) + if (ACPI_FAILURE (Status) && (Status != AE_BAD_ADDRESS)) { return_ACPI_STATUS (Status); } diff --git a/usr/src/uts/intel/io/acpica/osl.c b/usr/src/uts/intel/io/acpica/osl.c index a7039bf422..7a4fb069cc 100644 --- a/usr/src/uts/intel/io/acpica/osl.c +++ b/usr/src/uts/intel/io/acpica/osl.c @@ -44,6 +44,7 @@ #include <sys/taskq.h> #include <sys/strlog.h> #include <sys/note.h> +#include <sys/promif.h> #include <sys/acpi/acpi.h> #include <sys/acpi/accommon.h> @@ -1164,12 +1165,20 @@ acpica_pr_buf(char *buf) *outp++ = c; if (c == '\n' || --out_remaining == 0) { *outp = '\0'; - if (acpica_console_out) + switch (acpica_console_out) { + case 1: printf(acpica_outbuf); - else + break; + case 2: + prom_printf(acpica_outbuf); + break; + case 0: + default: (void) strlog(0, 0, 0, SL_CONSOLE | SL_NOTE | SL_LOGONLY, acpica_outbuf); + break; + } acpica_outbuf_offset = 0; outp = acpica_outbuf; out_remaining = ACPICA_OUTBUF_LEN - 1; |