Module Name: src Committed By: macallan Date: Sat Sep 12 18:12:53 UTC 2020
Modified Files: src/sys/arch/macppc/dev: lmu.c Log Message: respond to keyboard brightness control PMF events To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/macppc/dev/lmu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/macppc/dev/lmu.c diff -u src/sys/arch/macppc/dev/lmu.c:1.4 src/sys/arch/macppc/dev/lmu.c:1.5 --- src/sys/arch/macppc/dev/lmu.c:1.4 Thu Apr 23 12:56:40 2020 +++ src/sys/arch/macppc/dev/lmu.c Sat Sep 12 18:12:53 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: lmu.c,v 1.4 2020/04/23 12:56:40 macallan Exp $ */ +/* $NetBSD: lmu.c,v 1.5 2020/09/12 18:12:53 macallan Exp $ */ /*- * Copyright (c) 2020 Michael Lorenz @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lmu.c,v 1.4 2020/04/23 12:56:40 macallan Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lmu.c,v 1.5 2020/09/12 18:12:53 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -123,6 +123,26 @@ lmu_video_off(device_t dev) sc->sc_video_state = false; } +static void +lmu_kbd_brightness_up(device_t dev) +{ + struct lmu_softc * const sc = device_private(dev); + + sc->sc_level = __MIN(16, sc->sc_level + 2); + sc->sc_target = sc->sc_level; + callout_schedule(&sc->sc_adjust, LMU_FADE); +} + +static void +lmu_kbd_brightness_down(device_t dev) +{ + struct lmu_softc * const sc = device_private(dev); + + sc->sc_level = __MAX(0, sc->sc_level - 2); + sc->sc_target = sc->sc_level; + callout_schedule(&sc->sc_adjust, LMU_FADE); +} + static int lmu_match(device_t parent, cfdata_t match, void *aux) { @@ -162,6 +182,10 @@ lmu_attach(device_t parent, device_t sel lmu_video_on, true); pmf_event_register(sc->sc_dev, PMFE_DISPLAY_OFF, lmu_video_off, true); + pmf_event_register(sc->sc_dev, PMFE_KEYBOARD_BRIGHTNESS_UP, + lmu_kbd_brightness_up, true); + pmf_event_register(sc->sc_dev, PMFE_KEYBOARD_BRIGHTNESS_DOWN, + lmu_kbd_brightness_down, true); sc->sc_sme = sysmon_envsys_create(); sc->sc_sme->sme_name = device_xname(self);