From caac49960ba0da450a0b8ca0d1ed886f620bc009 Mon Sep 17 00:00:00 2001 From: Philip Paeps Date: Mon, 9 May 2005 08:43:49 +0000 Subject: Add support for Asus V6V[1] and W1N notebooks. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Submitted by: Jean-Sébastien Pédron [1] MFC after: 3 days --- sys/dev/acpi_support/acpi_asus.c | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'sys/dev') diff --git a/sys/dev/acpi_support/acpi_asus.c b/sys/dev/acpi_support/acpi_asus.c index c3dfdb0d58d6..77eba5842e23 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; -- cgit v1.3