summaryrefslogtreecommitdiffstats
path: root/sys/i386/acpica
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-08-03 21:17:36 +0000
committernjl <njl@FreeBSD.org>2004-08-03 21:17:36 +0000
commitf9477f2ed8f03c5369ba31883076ef3becc8acfc (patch)
treed8c8c8e2974585c20379e49c553fbc6273233eeb /sys/i386/acpica
parent294f3fe4621b8294f1c6f32cb80af0fd74228aab (diff)
downloadFreeBSD-src-f9477f2ed8f03c5369ba31883076ef3becc8acfc.zip
FreeBSD-src-f9477f2ed8f03c5369ba31883076ef3becc8acfc.tar.gz
Use the acpi_{Get,Set}Integer functions instead of rolling custom ones.
Clean up return path of each function to have a single exit point. This reduces diffs against the MPSAFE tree.
Diffstat (limited to 'sys/i386/acpica')
-rw-r--r--sys/i386/acpica/acpi_asus.c110
1 files changed, 32 insertions, 78 deletions
diff --git a/sys/i386/acpica/acpi_asus.c b/sys/i386/acpica/acpi_asus.c
index 9c87d18..da76d09 100644
--- a/sys/i386/acpica/acpi_asus.c
+++ b/sys/i386/acpica/acpi_asus.c
@@ -320,18 +320,17 @@ acpi_asus_attach(device_t dev)
/* Attach LCD state, easy for most models... */
if (sc->model->lcd_get && strncmp(sc->model->name, "L3H", 3) != 0 &&
ACPI_SUCCESS(acpi_GetInteger(sc->handle, sc->model->lcd_get,
- &sc->s_lcd)))
+ &sc->s_lcd))) {
SYSCTL_ADD_PROC(&sc->sysctl_ctx,
SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
"lcd_backlight", CTLTYPE_INT | CTLFLAG_RW, sc, 0,
acpi_asus_sysctl_lcd, "I", "state of the lcd backlight");
-
- /* ...a nightmare for the L3H */
- else if (sc->model->lcd_get) {
+ } else if (sc->model->lcd_get) {
ACPI_BUFFER Buf;
ACPI_OBJECT Arg[2], Obj;
ACPI_OBJECT_LIST Args;
+ /* ...a nightmare for the L3H */
Arg[0].Type = ACPI_TYPE_INTEGER;
Arg[0].Integer.Value = 0x02;
Arg[1].Type = ACPI_TYPE_INTEGER;
@@ -399,68 +398,40 @@ static void
acpi_asus_mled(device_t dev, int state)
{
struct acpi_asus_softc *sc;
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
+ /* Note that the MLED value is inverted. */
sc = device_get_softc(dev);
-
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = !state; /* Inverted, yes! */
-
- Args.Count = 1;
- Args.Pointer = &Arg;
-
- AcpiEvaluateObject(sc->handle, sc->model->mled_set, &Args, NULL);
+ acpi_SetInteger(sc->handle, sc->model->mled_set, !state);
}
static void
acpi_asus_tled(device_t dev, int state)
{
struct acpi_asus_softc *sc;
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
sc = device_get_softc(dev);
-
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = state;
-
- Args.Count = 1;
- Args.Pointer = &Arg;
-
- AcpiEvaluateObject(sc->handle, sc->model->tled_set, &Args, NULL);
+ acpi_SetInteger(sc->handle, sc->model->tled_set, state);
}
static void
acpi_asus_wled(device_t dev, int state)
{
struct acpi_asus_softc *sc;
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
sc = device_get_softc(dev);
-
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = state;
-
- Args.Count = 1;
- Args.Pointer = &Arg;
-
- AcpiEvaluateObject(sc->handle, sc->model->wled_set, &Args, NULL);
+ acpi_SetInteger(sc->handle, sc->model->wled_set, state);
}
static int
acpi_asus_sysctl_brn(SYSCTL_HANDLER_ARGS)
{
struct acpi_asus_softc *sc;
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
int brn, err;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
@@ -472,22 +443,18 @@ acpi_asus_sysctl_brn(SYSCTL_HANDLER_ARGS)
err = sysctl_handle_int(oidp, &brn, 0, req);
if (err != 0 || req->newptr == NULL)
- return (err);
+ goto out;
- if (brn < 0 || brn > 15)
- return (EINVAL);
+ if (brn < 0 || brn > 15) {
+ err = EINVAL;
+ goto out;
+ }
/* Keep track and update */
sc->s_brn = brn;
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = brn;
-
- Args.Count = 1;
- Args.Pointer = &Arg;
-
if (sc->model->brn_set)
- AcpiEvaluateObject(sc->handle, sc->model->brn_set, &Args, NULL);
+ acpi_SetInteger(sc->handle, sc->model->brn_set, brn);
else {
brn -= sc->s_brn;
@@ -495,12 +462,12 @@ acpi_asus_sysctl_brn(SYSCTL_HANDLER_ARGS)
AcpiEvaluateObject(sc->handle, (brn > 0) ?
sc->model->brn_up : sc->model->brn_dn,
NULL, NULL);
-
(brn > 0) ? brn-- : brn++;
}
}
- return (0);
+out:
+ return (err);
}
static int
@@ -518,10 +485,12 @@ acpi_asus_sysctl_lcd(SYSCTL_HANDLER_ARGS)
err = sysctl_handle_int(oidp, &lcd, 0, req);
if (err != 0 || req->newptr == NULL)
- return (err);
+ goto out;
- if (lcd < 0 || lcd > 1)
- return (EINVAL);
+ if (lcd < 0 || lcd > 1) {
+ err = EINVAL;
+ goto out;
+ }
/* Keep track and update */
sc->s_lcd = lcd;
@@ -529,28 +498,17 @@ acpi_asus_sysctl_lcd(SYSCTL_HANDLER_ARGS)
/* Most models just need a lcd_set evaluated, the L3H is trickier */
if (strncmp(sc->model->name, "L3H", 3) != 0)
AcpiEvaluateObject(sc->handle, sc->model->lcd_set, NULL, NULL);
- else {
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
-
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = 0x07;
-
- Args.Count = 1;
- Args.Pointer = &Arg;
+ else
+ acpi_SetInteger(sc->handle, sc->model->lcd_set, 0x7);
- AcpiEvaluateObject(sc->handle, sc->model->lcd_set, &Args, NULL);
- }
-
- return (0);
+out:
+ return (err);
}
static int
acpi_asus_sysctl_disp(SYSCTL_HANDLER_ARGS)
{
struct acpi_asus_softc *sc;
- ACPI_OBJECT Arg;
- ACPI_OBJECT_LIST Args;
int disp, err;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
@@ -562,23 +520,19 @@ acpi_asus_sysctl_disp(SYSCTL_HANDLER_ARGS)
err = sysctl_handle_int(oidp, &disp, 0, req);
if (err != 0 || req->newptr == NULL)
- return (err);
+ goto out;
- if (disp < 0 || disp > 7)
- return (EINVAL);
+ if (disp < 0 || disp > 7) {
+ err = EINVAL;
+ goto out;
+ }
/* Keep track and update */
sc->s_disp = disp;
+ acpi_SetInteger(sc->handle, sc->model->disp_set, disp);
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = disp;
-
- Args.Count = 1;
- Args.Pointer = &Arg;
-
- AcpiEvaluateObject(sc->handle, sc->model->disp_set, &Args, NULL);
-
- return (0);
+out:
+ return (err);
}
static void
OpenPOWER on IntegriCloud