Lines Matching +full:dev +full:- +full:handle
1 /*-
2 * Copyright (c) 2003 OGAWA Takaya <t-ogawa@triaez.kaisei.org>
39 #include <contrib/dev/acpica/include/acpi.h>
41 #include <dev/acpica/acpivar.h>
64 #define HKEY_LCD_BRIGHTNESS_DIV ((1 << HKEY_LCD_BRIGHTNESS_BITS) - 1)
67 device_t dev; member
68 ACPI_HANDLE handle; member
79 static int acpi_panasonic_probe(device_t dev);
80 static int acpi_panasonic_attach(device_t dev);
81 static int acpi_panasonic_detach(device_t dev);
82 static int acpi_panasonic_shutdown(device_t dev);
133 acpi_panasonic_probe(device_t dev) in acpi_panasonic_probe() argument
139 device_get_unit(dev) != 0) in acpi_panasonic_probe()
141 rv = ACPI_ID_PROBE(device_get_parent(dev), dev, mat_ids, NULL); in acpi_panasonic_probe()
144 device_set_desc(dev, "Panasonic Notebook Hotkeys"); in acpi_panasonic_probe()
149 acpi_panasonic_attach(device_t dev) in acpi_panasonic_attach() argument
156 sc = device_get_softc(dev); in acpi_panasonic_attach()
157 sc->dev = dev; in acpi_panasonic_attach()
158 sc->handle = acpi_get_handle(dev); in acpi_panasonic_attach()
160 acpi_sc = acpi_device_get_parent_softc(dev); in acpi_panasonic_attach()
163 sysctl_ctx_init(&sc->sysctl_ctx); in acpi_panasonic_attach()
164 sc->sysctl_tree = SYSCTL_ADD_NODE(&sc->sysctl_ctx, in acpi_panasonic_attach()
165 SYSCTL_CHILDREN(acpi_sc->acpi_sysctl_tree), OID_AUTO, in acpi_panasonic_attach()
168 SYSCTL_ADD_PROC(&sc->sysctl_ctx, in acpi_panasonic_attach()
169 SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO, in acpi_panasonic_attach()
177 status = AcpiEvaluateObject(sc->handle, "", NULL, NULL); in acpi_panasonic_attach()
179 device_printf(dev, "enable FN keys failed\n"); in acpi_panasonic_attach()
180 sysctl_ctx_free(&sc->sysctl_ctx); in acpi_panasonic_attach()
185 /* Handle notifies */ in acpi_panasonic_attach()
186 status = AcpiInstallNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY, in acpi_panasonic_attach()
189 device_printf(dev, "couldn't install notify handler - %s\n", in acpi_panasonic_attach()
191 sysctl_ctx_free(&sc->sysctl_ctx); in acpi_panasonic_attach()
196 sc->power_evh = EVENTHANDLER_REGISTER(power_profile_change, in acpi_panasonic_attach()
197 acpi_panasonic_power_profile, sc->handle, 0); in acpi_panasonic_attach()
203 acpi_panasonic_detach(device_t dev) in acpi_panasonic_detach() argument
207 sc = device_get_softc(dev); in acpi_panasonic_detach()
210 EVENTHANDLER_DEREGISTER(power_profile_change, sc->power_evh); in acpi_panasonic_detach()
213 AcpiRemoveNotifyHandler(sc->handle, ACPI_DEVICE_NOTIFY, in acpi_panasonic_detach()
217 sysctl_ctx_free(&sc->sysctl_ctx); in acpi_panasonic_detach()
223 acpi_panasonic_shutdown(device_t dev) in acpi_panasonic_shutdown() argument
229 sc = device_get_softc(dev); in acpi_panasonic_shutdown()
231 hkey_sound_mute(sc->handle, HKEY_SET, &mute); in acpi_panasonic_shutdown()
243 sc = (struct acpi_panasonic_softc *)oidp->oid_arg1; in acpi_panasonic_sysctl()
244 function = oidp->oid_arg2; in acpi_panasonic_sysctl()
249 error = handler(sc->handle, HKEY_GET, &arg); in acpi_panasonic_sysctl()
255 if (error != 0 || req->newptr == NULL) in acpi_panasonic_sysctl()
259 error = handler(sc->handle, HKEY_SET, &arg); in acpi_panasonic_sysctl()
274 ret = -1; in acpi_panasonic_sinf()
279 if (res->Type == ACPI_TYPE_PACKAGE) in acpi_panasonic_sinf()
280 ret = res->Package.Elements[index].Integer.Value; in acpi_panasonic_sinf()
405 if (res->Type != ACPI_TYPE_INTEGER) { in acpi_panasonic_hkey_event()
406 device_printf(sc->dev, "HINF returned non-integer\n"); in acpi_panasonic_hkey_event()
409 val = res->Integer.Value; in acpi_panasonic_hkey_event()
411 device_printf(sc->dev, "%s button Fn+F%d\n", in acpi_panasonic_hkey_event()
433 acpi_sc = acpi_device_get_parent_softc(sc->dev); in acpi_panasonic_hkey_action()
442 arg -= max / HKEY_LCD_BRIGHTNESS_DIV; in acpi_panasonic_hkey_action()
499 device_printf(sc->dev, "unknown notify: %#x\n", notify); in acpi_panasonic_notify()
507 ACPI_HANDLE handle; in acpi_panasonic_power_profile() local
510 handle = (ACPI_HANDLE)arg; in acpi_panasonic_power_profile()
514 hkey_lcd_brightness(handle, HKEY_GET, &brightness); in acpi_panasonic_power_profile()
515 hkey_lcd_brightness(handle, HKEY_SET, &brightness); in acpi_panasonic_power_profile()