diff options
| author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2018-08-13 19:00:42 +0000 |
|---|---|---|
| committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2018-08-13 19:00:42 +0000 |
| commit | 911aed94fa3a6b7c99aae26c48c0724ada8ab787 (patch) | |
| tree | 30afd3caed98d978252498cb8988810e62cf85f7 /sys/dev/usb/input | |
| parent | b16d03ad6e17a6f1ae18ab27ade04090cf415a2d (diff) | |
Notes
Diffstat (limited to 'sys/dev/usb/input')
| -rw-r--r-- | sys/dev/usb/input/uep.c | 12 | ||||
| -rw-r--r-- | sys/dev/usb/input/ums.c | 12 | ||||
| -rw-r--r-- | sys/dev/usb/input/wmt.c | 39 |
3 files changed, 49 insertions, 14 deletions
diff --git a/sys/dev/usb/input/uep.c b/sys/dev/usb/input/uep.c index e230af9ee887..3412a2bde95f 100644 --- a/sys/dev/usb/input/uep.c +++ b/sys/dev/usb/input/uep.c @@ -430,19 +430,21 @@ uep_detach(device_t dev) #ifdef EVDEV_SUPPORT -static void -uep_ev_close(struct evdev_dev *evdev, void *ev_softc) +static int +uep_ev_close(struct evdev_dev *evdev) { - struct uep_softc *sc = (struct uep_softc *)ev_softc; + struct uep_softc *sc = evdev_get_softc(evdev); mtx_assert(&sc->mtx, MA_OWNED); usbd_transfer_stop(sc->xfer[UEP_INTR_DT]); + + return (0); } static int -uep_ev_open(struct evdev_dev *evdev, void *ev_softc) +uep_ev_open(struct evdev_dev *evdev) { - struct uep_softc *sc = (struct uep_softc *)ev_softc; + struct uep_softc *sc = evdev_get_softc(evdev); mtx_assert(&sc->mtx, MA_OWNED); usbd_transfer_start(sc->xfer[UEP_INTR_DT]); diff --git a/sys/dev/usb/input/ums.c b/sys/dev/usb/input/ums.c index 0db781237266..b2f777236a7c 100644 --- a/sys/dev/usb/input/ums.c +++ b/sys/dev/usb/input/ums.c @@ -950,9 +950,9 @@ ums_reset_buf(struct ums_softc *sc) #ifdef EVDEV_SUPPORT static int -ums_ev_open(struct evdev_dev *evdev, void *ev_softc) +ums_ev_open(struct evdev_dev *evdev) { - struct ums_softc *sc = (struct ums_softc *)ev_softc; + struct ums_softc *sc = evdev_get_softc(evdev); mtx_assert(&sc->sc_mtx, MA_OWNED); @@ -966,10 +966,10 @@ ums_ev_open(struct evdev_dev *evdev, void *ev_softc) return (0); } -static void -ums_ev_close(struct evdev_dev *evdev, void *ev_softc) +static int +ums_ev_close(struct evdev_dev *evdev) { - struct ums_softc *sc = (struct ums_softc *)ev_softc; + struct ums_softc *sc = evdev_get_softc(evdev); mtx_assert(&sc->sc_mtx, MA_OWNED); @@ -977,6 +977,8 @@ ums_ev_close(struct evdev_dev *evdev, void *ev_softc) if (sc->sc_fflags == 0) ums_stop_rx(sc); + + return (0); } #endif diff --git a/sys/dev/usb/input/wmt.c b/sys/dev/usb/input/wmt.c index c8935928244a..226023a57bfd 100644 --- a/sys/dev/usb/input/wmt.c +++ b/sys/dev/usb/input/wmt.c @@ -226,12 +226,22 @@ static device_probe_t wmt_probe; static device_attach_t wmt_attach; static device_detach_t wmt_detach; +#if __FreeBSD_version >= 1200077 static evdev_open_t wmt_ev_open; static evdev_close_t wmt_ev_close; +#else +static evdev_open_t wmt_ev_open_11; +static evdev_close_t wmt_ev_close_11; +#endif static const struct evdev_methods wmt_evdev_methods = { +#if __FreeBSD_version >= 1200077 .ev_open = &wmt_ev_open, .ev_close = &wmt_ev_close, +#else + .ev_open = &wmt_ev_open_11, + .ev_close = &wmt_ev_close_11, +#endif }; static const struct usb_config wmt_config[WMT_N_TRANSFER] = { @@ -525,18 +535,18 @@ tr_setup: } static void -wmt_ev_close(struct evdev_dev *evdev, void *ev_softc) +wmt_ev_close_11(struct evdev_dev *evdev, void *ev_softc) { - struct wmt_softc *sc = (struct wmt_softc *)ev_softc; + struct wmt_softc *sc = ev_softc; mtx_assert(&sc->mtx, MA_OWNED); usbd_transfer_stop(sc->xfer[WMT_INTR_DT]); } static int -wmt_ev_open(struct evdev_dev *evdev, void *ev_softc) +wmt_ev_open_11(struct evdev_dev *evdev, void *ev_softc) { - struct wmt_softc *sc = (struct wmt_softc *)ev_softc; + struct wmt_softc *sc = ev_softc; mtx_assert(&sc->mtx, MA_OWNED); usbd_transfer_start(sc->xfer[WMT_INTR_DT]); @@ -544,6 +554,27 @@ wmt_ev_open(struct evdev_dev *evdev, void *ev_softc) return (0); } +#if __FreeBSD_version >= 1200077 +static int +wmt_ev_close(struct evdev_dev *evdev) +{ + struct wmt_softc *sc = evdev_get_softc(evdev); + + wmt_ev_close_11(evdev, sc); + + return (0); +} + +static int +wmt_ev_open(struct evdev_dev *evdev) +{ + struct wmt_softc *sc = evdev_get_softc(evdev); + + return (wmt_ev_open_11(evdev, sc)); + +} +#endif + /* port of userland hid_report_size() from usbhid(3) to kernel */ static int wmt_hid_report_size(const void *buf, uint16_t len, enum hid_kind k, uint8_t id) |
