Revert acpi_ec.c 1.76.
We will do this another way, and separate KNF fixes from the critical functional change. ok msaitoh
This commit is contained in:
parent
0aae29f3a4
commit
bb9c42c5fc
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: acpi_ec.c,v 1.78 2020/04/12 01:11:23 riastradh Exp $ */
|
||||
/* $NetBSD: acpi_ec.c,v 1.79 2020/04/12 01:11:43 riastradh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
|
||||
|
@ -59,7 +59,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.78 2020/04/12 01:11:23 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.79 2020/04/12 01:11:43 riastradh Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/callout.h>
|
||||
|
@ -404,7 +404,6 @@ post_data_map:
|
|||
static bool
|
||||
acpiec_suspend(device_t dv, const pmf_qual_t *qual)
|
||||
{
|
||||
|
||||
acpiec_cold = true;
|
||||
|
||||
return true;
|
||||
|
@ -413,7 +412,6 @@ acpiec_suspend(device_t dv, const pmf_qual_t *qual)
|
|||
static bool
|
||||
acpiec_resume(device_t dv, const pmf_qual_t *qual)
|
||||
{
|
||||
|
||||
acpiec_cold = false;
|
||||
|
||||
return true;
|
||||
|
@ -456,10 +454,9 @@ acpiec_parse_gpe_package(device_t self, ACPI_HANDLE ec_handle,
|
|||
ACPI_FREE(p);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (p->Package.Count != 2) {
|
||||
aprint_error_dev(self,
|
||||
"_GPE package does not contain 2 elements\n");
|
||||
aprint_error_dev(self, "_GPE package does not contain 2 elements\n");
|
||||
ACPI_FREE(p);
|
||||
return false;
|
||||
}
|
||||
|
@ -514,7 +511,6 @@ static ACPI_STATUS
|
|||
acpiec_space_setup(ACPI_HANDLE region, uint32_t func, void *arg,
|
||||
void **region_arg)
|
||||
{
|
||||
|
||||
if (func == ACPI_REGION_DEACTIVATE)
|
||||
*region_arg = NULL;
|
||||
else
|
||||
|
@ -532,11 +528,9 @@ acpiec_lock(device_t dv)
|
|||
mutex_enter(&sc->sc_access_mtx);
|
||||
|
||||
if (sc->sc_need_global_lock) {
|
||||
rv = AcpiAcquireGlobalLock(EC_LOCK_TIMEOUT,
|
||||
&sc->sc_global_lock);
|
||||
rv = AcpiAcquireGlobalLock(EC_LOCK_TIMEOUT, &sc->sc_global_lock);
|
||||
if (rv != AE_OK) {
|
||||
aprint_error_dev(dv,
|
||||
"failed to acquire global lock: %s\n",
|
||||
aprint_error_dev(dv, "failed to acquire global lock: %s\n",
|
||||
AcpiFormatException(rv));
|
||||
return;
|
||||
}
|
||||
|
@ -552,8 +546,7 @@ acpiec_unlock(device_t dv)
|
|||
if (sc->sc_need_global_lock) {
|
||||
rv = AcpiReleaseGlobalLock(sc->sc_global_lock);
|
||||
if (rv != AE_OK) {
|
||||
aprint_error_dev(dv,
|
||||
"failed to release global lock: %s\n",
|
||||
aprint_error_dev(dv, "failed to release global lock: %s\n",
|
||||
AcpiFormatException(rv));
|
||||
}
|
||||
}
|
||||
|
@ -594,8 +587,7 @@ acpiec_read(device_t dv, uint8_t addr, uint8_t *val)
|
|||
} else if (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, EC_CMD_TIMEOUT * hz)) {
|
||||
mutex_exit(&sc->sc_mtx);
|
||||
acpiec_unlock(dv);
|
||||
aprint_error_dev(dv,
|
||||
"command takes over %d sec...\n", EC_CMD_TIMEOUT);
|
||||
aprint_error_dev(dv, "command takes over %d sec...\n", EC_CMD_TIMEOUT);
|
||||
return AE_ERROR;
|
||||
}
|
||||
|
||||
|
@ -642,8 +634,7 @@ acpiec_write(device_t dv, uint8_t addr, uint8_t val)
|
|||
} else if (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, EC_CMD_TIMEOUT * hz)) {
|
||||
mutex_exit(&sc->sc_mtx);
|
||||
acpiec_unlock(dv);
|
||||
aprint_error_dev(dv,
|
||||
"command takes over %d sec...\n", EC_CMD_TIMEOUT);
|
||||
aprint_error_dev(dv, "command takes over %d sec...\n", EC_CMD_TIMEOUT);
|
||||
return AE_ERROR;
|
||||
}
|
||||
|
||||
|
@ -657,42 +648,43 @@ static ACPI_STATUS
|
|||
acpiec_space_handler(uint32_t func, ACPI_PHYSICAL_ADDRESS paddr,
|
||||
uint32_t width, ACPI_INTEGER *value, void *arg, void *region_arg)
|
||||
{
|
||||
device_t dv = arg;
|
||||
device_t dv;
|
||||
ACPI_STATUS rv;
|
||||
uint8_t addr;
|
||||
uint8_t *reg;
|
||||
uint8_t addr, reg;
|
||||
unsigned int i;
|
||||
|
||||
if ((func != ACPI_READ) && (func != ACPI_WRITE)) {
|
||||
aprint_error("%s: invalid Address Space function called: %x\n",
|
||||
device_xname(dv), (unsigned int)func);
|
||||
return AE_BAD_PARAMETER;
|
||||
}
|
||||
if (paddr > 0xff || width % 8 != 0 || value == NULL || arg == NULL ||
|
||||
paddr + width / 8 > 0x100)
|
||||
return AE_BAD_PARAMETER;
|
||||
|
||||
addr = paddr;
|
||||
reg = (uint8_t *)value;
|
||||
dv = arg;
|
||||
|
||||
rv = AE_OK;
|
||||
|
||||
if (func == ACPI_READ)
|
||||
switch (func) {
|
||||
case ACPI_READ:
|
||||
*value = 0;
|
||||
|
||||
do {
|
||||
switch (func) {
|
||||
case ACPI_READ:
|
||||
rv = acpiec_read(dv, addr, reg);
|
||||
break;
|
||||
case ACPI_WRITE:
|
||||
rv = acpiec_write(dv, addr, *reg);
|
||||
break;
|
||||
for (i = 0; i < width; i += 8, ++addr) {
|
||||
rv = acpiec_read(dv, addr, ®);
|
||||
if (rv != AE_OK)
|
||||
break;
|
||||
*value |= (ACPI_INTEGER)reg << i;
|
||||
}
|
||||
if (rv != AE_OK)
|
||||
break;
|
||||
addr++;
|
||||
reg++;
|
||||
} while (addr < (paddr + width / 8));
|
||||
break;
|
||||
case ACPI_WRITE:
|
||||
for (i = 0; i < width; i += 8, ++addr) {
|
||||
reg = (*value >>i) & 0xff;
|
||||
rv = acpiec_write(dv, addr, reg);
|
||||
if (rv != AE_OK)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
aprint_error("%s: invalid Address Space function called: %x\n",
|
||||
device_xname(dv), (unsigned int)func);
|
||||
return AE_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
@ -875,8 +867,7 @@ acpiec_bus_read(device_t dv, u_int addr, ACPI_INTEGER *val, int width)
|
|||
ACPI_STATUS
|
||||
acpiec_bus_write(device_t dv, u_int addr, ACPI_INTEGER val, int width)
|
||||
{
|
||||
return acpiec_space_handler(ACPI_WRITE, addr, width * 8, &val, dv,
|
||||
NULL);
|
||||
return acpiec_space_handler(ACPI_WRITE, addr, width * 8, &val, dv, NULL);
|
||||
}
|
||||
|
||||
ACPI_HANDLE
|
||||
|
|
Loading…
Reference in New Issue