summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/intel/io/acpica/hardware/hwsleep.c18
-rw-r--r--usr/src/uts/intel/io/acpica/osl.c13
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;