> Am 11.12.2015 um 10:27 schrieb Ville Valkonen <weezeld...@gmail.com>: > >> On 11 December 2015 at 10:36, Joerg Jung <m...@umaxx.net> wrote: >> Ping. Anyone? >> >> > On 07 Dec 2015, at 23:39, Joerg Jung <m...@umaxx.net> wrote: >> > >> > Hi, >> > >> > here comes a series of small diffs which add generic support for >> > keyboard backlights. >> > >> > Please find below the first diff, which adds new ioctls to wskbd(4) to >> > control keyboard backlights. >> > >> > In contrast to an earlier diff from jcs, I have chosen to use a struct >> > in favor of a simple (unsigned) int as depending on the vendor >> > (Thinkpad, Apple, ...) different min/max values for the brightness of >> > the keyboard backlight are possible. >> > >> > Comments, OK? >> > >> > Thanks, >> > Regards, >> > Joerg >> > >> > >> > >> > Index: wsconsio.h >> > =================================================================== >> > RCS file: /cvs/src/sys/dev/wscons/wsconsio.h,v >> > retrieving revision 1.72 >> > diff -u -p -r1.72 wsconsio.h >> > --- wsconsio.h 30 Aug 2015 10:05:09 -0000 1.72 >> > +++ wsconsio.h 7 Dec 2015 21:03:45 -0000 >> > @@ -180,6 +180,13 @@ struct wskbd_map_data { >> > #define WSKBDIO_GETENCODING _IOR('W', 15, kbd_t) >> > #define WSKBDIO_SETENCODING _IOW('W', 16, kbd_t) >> > >> > +/* Get/set keyboard backlight. Not applicable to all keyboard types. */ >> > +struct wskbd_backlight { >> > + unsigned int min, max, curval; >> > +}; >> > +#define WSKBDIO_GETBACKLIGHT _IOR('W', 17, struct wskbd_backlight) >> > +#define WSKBDIO_SETBACKLIGHT _IOW('W', 18, struct wskbd_backlight) >> > + >> > /* internal use only */ >> > #define WSKBDIO_SETMODE _IOW('W', 19, int) >> > #define WSKBDIO_GETMODE _IOR('W', 20, int) >> > Index: wskbd.c >> > =================================================================== >> > RCS file: /cvs/src/sys/dev/wscons/wskbd.c,v >> > retrieving revision 1.82 >> > diff -u -p -r1.82 wskbd.c >> > --- wskbd.c 10 Sep 2015 18:14:52 -0000 1.82 >> > +++ wskbd.c 7 Dec 2015 21:03:45 -0000 >> > @@ -230,6 +230,9 @@ int wskbd_mux_close(struct wsevsrc *); >> > int wskbd_do_open(struct wskbd_softc *, struct wseventvar *); >> > int wskbd_do_ioctl(struct device *, u_long, caddr_t, int, struct proc *); >> > >> > +int (*wskbd_get_backlight)(struct wskbd_backlight *); >> > +int (*wskbd_set_backlight)(struct wskbd_backlight *); >> > + >> > struct cfdriver wskbd_cd = { >> > NULL, "wskbd", DV_TTY >> > }; >> > @@ -1010,6 +1013,7 @@ wskbd_displayioctl(struct device *dev, u >> > case WSKBDIO_SETDEFAULTKEYREPEAT: >> > case WSKBDIO_SETMAP: >> > case WSKBDIO_SETENCODING: >> > + case WSKBDIO_SETBACKLIGHT: >> > if ((flag & FWRITE) == 0) >> > return (EACCES); >> > } >> > @@ -1155,6 +1159,18 @@ getkeyrepeat: >> > wsmux_set_layout(sc->sc_base.me_parent, enc); >> > #endif >> > return (0); >> > + >> > + case WSKBDIO_GETBACKLIGHT: >> > + if (wskbd_get_backlight != NULL) >> > + return (*wskbd_get_backlight)((struct >> > wskbd_backlight *)data); >> > + error = ENOTTY; >> > + break; >> > + >> > + case WSKBDIO_SETBACKLIGHT: >> > + if (wskbd_set_backlight != NULL) >> > + return (*wskbd_set_backlight)((struct >> > wskbd_backlight *)data); >> > + error = ENOTTY; >> > + break; >> > } >> > >> > /* >> > > > not sure if this diff has been applied in the snapshots but lately brightness > keys started to work on Lenovo X250. Could be completely unrelated, though.
Yes, this is unrelated.