Again, I think the risk is small. A test with hilms would have been nice, of course (unfortunately, I didn't succeed in contacting Miod).
On 06/05/16 10:38, Stefan Sperling wrote: > On Sun, Jun 05, 2016 at 09:55:07AM +0200, Ulf Brosziewski wrote: >> ok? > > Again, I can't test this, but it's ok by me. > > I like the new wsmouse interface a lot better than the old one. > >> On 06/01/2016 01:23 AM, Ulf Brosziewski wrote: >>> zts, hilms, and uts are the drivers that still use wsmouse_input >>> with absolute coordinates (or with both types of coordinates). >>> The new, "flag-less" interface of wsmouse requires calls of >>> wsmouse_position, and, possibly, of wsmouse_touch in this case. >>> >>> Questions, tests and OKs would be welcome. >>> >>> >>> Index: arch/zaurus/dev/zts.c >>> =================================================================== >>> RCS file: /cvs/src/sys/arch/zaurus/dev/zts.c,v >>> retrieving revision 1.16 >>> diff -u -p -r1.16 zts.c >>> --- arch/zaurus/dev/zts.c 29 Mar 2014 18:09:30 -0000 1.16 >>> +++ arch/zaurus/dev/zts.c 31 May 2016 19:23:10 -0000 >>> @@ -544,10 +544,9 @@ zts_irq(void *v) >>> DPRINTF(("%s: tp.z = %d, tp.x = %d, tp.y = %d\n", >>> sc->sc_dev.dv_xname, tp.z, tp.x, tp.y)); >>> >>> - wsmouse_input(sc->sc_wsmousedev, down, tp.x, tp.y, >>> - 0 /* z */, 0 /* w */, >>> - WSMOUSE_INPUT_ABSOLUTE_X | WSMOUSE_INPUT_ABSOLUTE_Y | >>> - WSMOUSE_INPUT_ABSOLUTE_Z); >>> + wsmouse_buttons(sc->sc_wsmousedev, down); >>> + wsmouse_position(sc->sc_wsmousedev, tp.x, tp.y); >>> + wsmouse_input_sync(sc->sc_wsmousedev); >>> sc->sc_buttons = down; >>> sc->sc_oldx = tp.x; >>> sc->sc_oldy = tp.y; >>> Index: dev/hil/hilms.c >>> =================================================================== >>> RCS file: /cvs/src/sys/dev/hil/hilms.c,v >>> retrieving revision 1.5 >>> diff -u -p -r1.5 hilms.c >>> --- dev/hil/hilms.c 10 Apr 2007 22:37:17 -0000 1.5 >>> +++ dev/hil/hilms.c 31 May 2016 19:23:10 -0000 >>> @@ -219,7 +219,7 @@ void >>> hilms_callback(struct hildev_softc *dev, u_int buflen, u_int8_t *buf) >>> { >>> struct hilms_softc *sc = (struct hilms_softc *)dev; >>> - int type, flags; >>> + int type; >>> int dx, dy, dz, button; >>> #ifdef DIAGNOSTIC >>> int minlen; >>> @@ -256,9 +256,6 @@ hilms_callback(struct hildev_softc *dev, >>> */ >>> >>> if (type & HIL_MOUSEMOTION) { >>> - flags = sc->sc_features & HIL_ABSOLUTE ? >>> - WSMOUSE_INPUT_ABSOLUTE_X | WSMOUSE_INPUT_ABSOLUTE_Y | >>> - WSMOUSE_INPUT_ABSOLUTE_Z : WSMOUSE_INPUT_DELTA; >>> if (sc->sc_features & HIL_16_BITS) { >>> dx = *buf++; >>> dx |= (*buf++) << 8; >>> @@ -302,8 +299,7 @@ hilms_callback(struct hildev_softc *dev, >>> if ((sc->sc_features & HIL_ABSOLUTE) == 0 && >>> sc->sc_buttons == 0) >>> dy = -dy; >>> - } else >>> - dx = dy = dz = flags = 0; >>> + } >>> >>> if (type & HIL_MOUSEBUTTON) { >>> button = *buf; >>> @@ -332,7 +328,18 @@ hilms_callback(struct hildev_softc *dev, >>> /* buf++; */ >>> } >>> >>> - if (sc->sc_wsmousedev != NULL) >>> - wsmouse_input(sc->sc_wsmousedev, >>> - sc->sc_buttonstate, dx, dy, dz, 0, flags); >>> + if (sc->sc_wsmousedev == NULL) >>> + return; >>> + >>> + wsmouse_buttons(sc->sc_wsmousedev, sc->sc_buttonstate); >>> + if (type & HIL_MOUSEMOTION) { >>> + if ((sc->sc_features & HIL_ABSOLUTE) == 0) { >>> + wsmouse_motion(sc->sc_wsmousedev, dx, dy, dz, 0); >>> + } else { >>> + wsmouse_position(sc->sc_wsmousedev, dx, dy); >>> + if (sc->sc_axes > 2) >>> + wsmouse_touch(sc->sc_wsmousedev, dz, 0); >>> + } >>> + } >>> + wsmouse_input_sync(sc->sc_wsmousedev); >>> } >>> Index: dev/usb/uts.c >>> =================================================================== >>> RCS file: /cvs/src/sys/dev/usb/uts.c,v >>> retrieving revision 1.37 >>> diff -u -p -r1.37 uts.c >>> --- dev/usb/uts.c 10 Feb 2016 05:49:50 -0000 1.37 >>> +++ dev/usb/uts.c 31 May 2016 19:23:12 -0000 >>> @@ -476,9 +476,7 @@ uts_intr(struct usbd_xfer *xfer, void *a >>> DPRINTF(("%s: tp.down = %d, tp.z = %d, tp.x = %d, tp.y = %d\n", >>> sc->sc_dev.dv_xname, tp.down, tp.z, tp.x, tp.y)); >>> >>> - wsmouse_input(sc->sc_wsmousedev, tp.down, tp.x, tp.y, tp.z, 0, >>> - WSMOUSE_INPUT_ABSOLUTE_X | WSMOUSE_INPUT_ABSOLUTE_Y | >>> - WSMOUSE_INPUT_ABSOLUTE_Z); >>> + WSMOUSE_TOUCH(sc->sc_wsmousedev, tp.down, tp.x, tp.y, tp.z, 0); >>> sc->sc_oldy = tp.y; >>> sc->sc_oldx = tp.x; >>> >>> >>> >> >