summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpi_support
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/acpi_support')
-rw-r--r--sys/dev/acpi_support/acpi_aiboost.c38
-rw-r--r--sys/dev/acpi_support/acpi_ibm.c6
2 files changed, 21 insertions, 23 deletions
diff --git a/sys/dev/acpi_support/acpi_aiboost.c b/sys/dev/acpi_support/acpi_aiboost.c
index 8fff872..a8fe9cc 100644
--- a/sys/dev/acpi_support/acpi_aiboost.c
+++ b/sys/dev/acpi_support/acpi_aiboost.c
@@ -46,7 +46,6 @@ ACPI_MODULE_NAME("AIBOOST")
#define DESCSTRLEN 32
struct acpi_aiboost_element{
- ACPI_HANDLE h;
uint32_t id;
char desc[DESCSTRLEN];
};
@@ -127,22 +126,23 @@ static ACPI_STATUS acpi_aiboost_getcomponent(device_t dev, char *name, struct a
for(i = 1 ; i < o->Package.Count; i++){
elem = &o->Package.Elements[i];
- if(elem->Type != ACPI_TYPE_ANY){
- printf("NOREF\n");
- goto error;
- }
- c->elem[ i - 1].h = elem->Reference.Handle;
-
- buf2.Pointer = NULL;
- buf2.Length = ACPI_ALLOCATE_BUFFER;
-
- status = AcpiEvaluateObject(c->elem[i - 1].h, NULL, NULL,
- &buf2);
- if(ACPI_FAILURE(status)){
- printf("FETCH OBJECT\n");
+ if (elem->Type == ACPI_TYPE_ANY) {
+ buf2.Pointer = NULL;
+ buf2.Length = ACPI_ALLOCATE_BUFFER;
+
+ status = AcpiEvaluateObject(elem->Reference.Handle,
+ NULL, NULL, &buf2);
+ if (ACPI_FAILURE(status)){
+ printf("FETCH OBJECT\n");
+ goto error;
+ }
+ subobj = buf2.Pointer;
+ } else if (elem->Type == ACPI_TYPE_PACKAGE)
+ subobj = elem;
+ else {
+ printf("NO PACKAGE\n");
goto error;
}
- subobj = buf2.Pointer;
if(ACPI_FAILURE(acpi_PkgInt32(subobj,0, &c->elem[i -1].id))){
printf("ID FAILED\n");
goto error;
@@ -151,15 +151,17 @@ static ACPI_STATUS acpi_aiboost_getcomponent(device_t dev, char *name, struct a
sizeof(c->elem[i - 1].desc));
if(ACPI_FAILURE(status)){
if(status == E2BIG){
- c->elem[i-1].desc[DESCSTRLEN-1] = 0;
+ c->elem[i - 1].desc[DESCSTRLEN-1] = 0;
}else{
printf("DESC FAILED %d\n", i-1);
goto error;
}
}
- if(buf2.Pointer)
- AcpiOsFree(buf2.Pointer);
+ if (buf2.Pointer) {
+ AcpiOsFree(buf2.Pointer);
+ buf2.Pointer = NULL;
+ }
}
if(buf.Pointer)
diff --git a/sys/dev/acpi_support/acpi_ibm.c b/sys/dev/acpi_support/acpi_ibm.c
index 0bf340d..25db9b0 100644
--- a/sys/dev/acpi_support/acpi_ibm.c
+++ b/sys/dev/acpi_support/acpi_ibm.c
@@ -288,7 +288,7 @@ static devclass_t acpi_ibm_devclass;
DRIVER_MODULE(acpi_ibm, acpi, acpi_ibm_driver, acpi_ibm_devclass,
0, 0);
MODULE_DEPEND(acpi_ibm, acpi, 1, 1, 1);
-static char *ibm_ids[] = {"IBM0057", "IBM0068", NULL};
+static char *ibm_ids[] = {"IBM0068", NULL};
static void
ibm_led(void *softc, int onoff)
@@ -356,8 +356,6 @@ acpi_ibm_attach(device_t dev)
}
sc->ec_handle = acpi_get_handle(sc->ec_dev);
- ACPI_SERIAL_BEGIN(ibm);
-
/* Get the sysctl tree */
sc->sysctl_ctx = device_get_sysctl_ctx(dev);
sc->sysctl_tree = device_get_sysctl_tree(dev);
@@ -404,8 +402,6 @@ acpi_ibm_attach(device_t dev)
"Thermal zones");
}
- ACPI_SERIAL_END(ibm);
-
/* Handle notifies */
AcpiInstallNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY,
acpi_ibm_notify, dev);
OpenPOWER on IntegriCloud