diff options
author | philip <philip@FreeBSD.org> | 2005-05-09 08:43:49 +0000 |
---|---|---|
committer | philip <philip@FreeBSD.org> | 2005-05-09 08:43:49 +0000 |
commit | 3c26bd17393b39f7f8b65ab77f10875e2e720b8c (patch) | |
tree | 6da7f7dd9cb9be8fe82c06abf3d1a80c889d743c | |
parent | dd26ab4f88dded53371e6d38d460a8ae91aac677 (diff) | |
download | FreeBSD-src-3c26bd17393b39f7f8b65ab77f10875e2e720b8c.zip FreeBSD-src-3c26bd17393b39f7f8b65ab77f10875e2e720b8c.tar.gz |
Add support for Asus V6V[1] and W1N notebooks.
Submitted by: Jean-Sébastien Pédron <jspedron@club-internet.fr> [1]
MFC after: 3 days
-rw-r--r-- | share/man/man4/man4.i386/acpi_asus.4 | 6 | ||||
-rw-r--r-- | sys/dev/acpi_support/acpi_asus.c | 41 |
2 files changed, 46 insertions, 1 deletions
diff --git a/share/man/man4/man4.i386/acpi_asus.4 b/share/man/man4/man4.i386/acpi_asus.4 index 5475550..628f9b1 100644 --- a/share/man/man4/man4.i386/acpi_asus.4 +++ b/share/man/man4/man4.i386/acpi_asus.4 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 22, 2004 +.Dd May 9, 2004 .Dt ACPI_ASUS 4 i386 .Os .Sh NAME @@ -69,6 +69,10 @@ M2E M6N .It M6R +.It +V6V +.It +W1N .El .Pp Additionally, diff --git a/sys/dev/acpi_support/acpi_asus.c b/sys/dev/acpi_support/acpi_asus.c index c3dfdb0..77eba58 100644 --- a/sys/dev/acpi_support/acpi_asus.c +++ b/sys/dev/acpi_support/acpi_asus.c @@ -62,6 +62,7 @@ ACPI_MODULE_NAME("ASUS") struct acpi_asus_model { char *name; + char *bled_set; char *mled_set; char *tled_set; char *wled_set; @@ -84,6 +85,7 @@ struct acpi_asus_led { int busy; int state; enum { + ACPI_ASUS_LED_BLED, ACPI_ASUS_LED_MLED, ACPI_ASUS_LED_TLED, ACPI_ASUS_LED_WLED, @@ -98,6 +100,7 @@ struct acpi_asus_softc { struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; + struct acpi_asus_led s_bled; struct acpi_asus_led s_mled; struct acpi_asus_led s_tled; struct acpi_asus_led s_wled; @@ -204,6 +207,29 @@ static struct acpi_asus_model acpi_asus_models[] = { .disp_get = "\\SSTE", .disp_set = "SDSP" }, + { + .name = "V6V", + .bled_set = "BLED", + .tled_set = "TLED", + .wled_set = "WLED", + .lcd_get = "\\BKLT", + .lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", + .brn_get = "GPLV", + .brn_set = "SPLV", + .disp_get = "\\_SB.PCI0.P0P1.VGA.GETD", + .disp_set = "SDSP" + }, + { + .name = "W1N", + .mled_set = "MLED", + .wled_set = "WLED", + .lcd_get = "\\BKLT", + .lcd_set = "\\_SB.PCI0.SBRG.EC0._Q10", + .brn_get = "GPLV", + .brn_set = "SPLV", + .disp_get = "\\ADVG", + .disp_set = "SDSP" + }, { .name = NULL } }; @@ -403,6 +429,14 @@ acpi_asus_attach(device_t dev) } /* Attach leds */ + if (sc->model->bled_set) { + sc->s_bled.busy = 0; + sc->s_bled.sc = sc; + sc->s_bled.type = ACPI_ASUS_LED_BLED; + sc->s_bled.cdev = + led_create((led_t *)acpi_asus_led, &sc->s_bled, "bled"); + } + if (sc->model->mled_set) { sc->s_mled.busy = 0; sc->s_mled.sc = sc; @@ -447,6 +481,9 @@ acpi_asus_detach(device_t dev) sc = device_get_softc(dev); /* Turn the lights off */ + if (sc->model->bled_set) + led_destroy(sc->s_bled.cdev); + if (sc->model->mled_set) led_destroy(sc->s_mled.cdev); @@ -478,6 +515,10 @@ acpi_asus_led_task(struct acpi_asus_led *led, int pending __unused) sc = led->sc; switch (led->type) { + case ACPI_ASUS_LED_BLED: + method = sc->model->bled_set; + state = led->state; + break; case ACPI_ASUS_LED_MLED: method = sc->model->mled_set; |