aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/input
diff options
context:
space:
mode:
authorVladimir Kondratyev <wulf@FreeBSD.org>2018-08-13 19:00:42 +0000
committerVladimir Kondratyev <wulf@FreeBSD.org>2018-08-13 19:00:42 +0000
commit911aed94fa3a6b7c99aae26c48c0724ada8ab787 (patch)
tree30afd3caed98d978252498cb8988810e62cf85f7 /sys/dev/usb/input
parentb16d03ad6e17a6f1ae18ab27ade04090cf415a2d (diff)
Notes
Diffstat (limited to 'sys/dev/usb/input')
-rw-r--r--sys/dev/usb/input/uep.c12
-rw-r--r--sys/dev/usb/input/ums.c12
-rw-r--r--sys/dev/usb/input/wmt.c39
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)