summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb2/serial/uvisor2.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb2/serial/uvisor2.c')
-rw-r--r--sys/dev/usb2/serial/uvisor2.c41
1 files changed, 24 insertions, 17 deletions
diff --git a/sys/dev/usb2/serial/uvisor2.c b/sys/dev/usb2/serial/uvisor2.c
index d844a8c..6bd972f 100644
--- a/sys/dev/usb2/serial/uvisor2.c
+++ b/sys/dev/usb2/serial/uvisor2.c
@@ -83,7 +83,6 @@ SYSCTL_INT(_hw_usb2_uvisor, OID_AUTO, debug, CTLFLAG_RW,
#define UVISOR_CONFIG_INDEX 0
#define UVISOR_IFACE_INDEX 0
-#define UVISOR_N_TRANSFER 4 /* units */
#define UVISOR_BUFSIZE 1024 /* bytes */
/* From the Linux driver */
@@ -149,6 +148,14 @@ struct uvisor_palm_connection_info {
} __packed connections[UVISOR_MAX_CONN];
} __packed;
+enum {
+ UVISOR_BULK_DT_WR,
+ UVISOR_BULK_DT_RD,
+ UVISOR_BULK_CS_WR,
+ UVISOR_BULK_CS_RD,
+ UVISOR_N_TRANSFER = 4,
+};
+
struct uvisor_softc {
struct usb2_com_super_softc sc_super_ucom;
struct usb2_com_softc sc_ucom;
@@ -190,7 +197,7 @@ static void uvisor_stop_write(struct usb2_com_softc *);
static const struct usb2_config uvisor_config[UVISOR_N_TRANSFER] = {
- [0] = {
+ [UVISOR_BULK_DT_WR] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
@@ -199,7 +206,7 @@ static const struct usb2_config uvisor_config[UVISOR_N_TRANSFER] = {
.mh.callback = &uvisor_write_callback,
},
- [1] = {
+ [UVISOR_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
@@ -208,7 +215,7 @@ static const struct usb2_config uvisor_config[UVISOR_N_TRANSFER] = {
.mh.callback = &uvisor_read_callback,
},
- [2] = {
+ [UVISOR_BULK_CS_WR] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
@@ -218,7 +225,7 @@ static const struct usb2_config uvisor_config[UVISOR_N_TRANSFER] = {
.mh.interval = 50, /* 50ms */
},
- [3] = {
+ [UVISOR_BULK_CS_RD] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
@@ -552,7 +559,7 @@ uvisor_start_read(struct usb2_com_softc *ucom)
{
struct uvisor_softc *sc = ucom->sc_parent;
- usb2_transfer_start(sc->sc_xfer[1]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_DT_RD]);
}
static void
@@ -560,8 +567,8 @@ uvisor_stop_read(struct usb2_com_softc *ucom)
{
struct uvisor_softc *sc = ucom->sc_parent;
- usb2_transfer_stop(sc->sc_xfer[3]);
- usb2_transfer_stop(sc->sc_xfer[1]);
+ usb2_transfer_stop(sc->sc_xfer[UVISOR_BULK_CS_RD]);
+ usb2_transfer_stop(sc->sc_xfer[UVISOR_BULK_DT_RD]);
}
static void
@@ -569,7 +576,7 @@ uvisor_start_write(struct usb2_com_softc *ucom)
{
struct uvisor_softc *sc = ucom->sc_parent;
- usb2_transfer_start(sc->sc_xfer[0]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_DT_WR]);
}
static void
@@ -577,8 +584,8 @@ uvisor_stop_write(struct usb2_com_softc *ucom)
{
struct uvisor_softc *sc = ucom->sc_parent;
- usb2_transfer_stop(sc->sc_xfer[2]);
- usb2_transfer_stop(sc->sc_xfer[0]);
+ usb2_transfer_stop(sc->sc_xfer[UVISOR_BULK_CS_WR]);
+ usb2_transfer_stop(sc->sc_xfer[UVISOR_BULK_DT_WR]);
}
static void
@@ -591,7 +598,7 @@ uvisor_write_callback(struct usb2_xfer *xfer)
case USB_ST_SETUP:
case USB_ST_TRANSFERRED:
if (sc->sc_flag & UVISOR_FLAG_WRITE_STALL) {
- usb2_transfer_start(sc->sc_xfer[2]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_CS_WR]);
return;
}
if (usb2_com_get_data(&sc->sc_ucom, xfer->frbuffers, 0,
@@ -605,7 +612,7 @@ uvisor_write_callback(struct usb2_xfer *xfer)
default: /* Error */
if (xfer->error != USB_ERR_CANCELLED) {
sc->sc_flag |= UVISOR_FLAG_WRITE_STALL;
- usb2_transfer_start(sc->sc_xfer[2]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_CS_WR]);
}
return;
@@ -616,7 +623,7 @@ static void
uvisor_write_clear_stall_callback(struct usb2_xfer *xfer)
{
struct uvisor_softc *sc = xfer->priv_sc;
- struct usb2_xfer *xfer_other = sc->sc_xfer[0];
+ struct usb2_xfer *xfer_other = sc->sc_xfer[UVISOR_BULK_DT_WR];
if (usb2_clear_stall_callback(xfer, xfer_other)) {
DPRINTF("stall cleared\n");
@@ -636,7 +643,7 @@ uvisor_read_callback(struct usb2_xfer *xfer)
case USB_ST_SETUP:
if (sc->sc_flag & UVISOR_FLAG_READ_STALL) {
- usb2_transfer_start(sc->sc_xfer[3]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_CS_RD]);
} else {
xfer->frlengths[0] = xfer->max_data_length;
usb2_start_hardware(xfer);
@@ -646,7 +653,7 @@ uvisor_read_callback(struct usb2_xfer *xfer)
default: /* Error */
if (xfer->error != USB_ERR_CANCELLED) {
sc->sc_flag |= UVISOR_FLAG_READ_STALL;
- usb2_transfer_start(sc->sc_xfer[3]);
+ usb2_transfer_start(sc->sc_xfer[UVISOR_BULK_CS_RD]);
}
return;
@@ -657,7 +664,7 @@ static void
uvisor_read_clear_stall_callback(struct usb2_xfer *xfer)
{
struct uvisor_softc *sc = xfer->priv_sc;
- struct usb2_xfer *xfer_other = sc->sc_xfer[1];
+ struct usb2_xfer *xfer_other = sc->sc_xfer[UVISOR_BULK_DT_RD];
if (usb2_clear_stall_callback(xfer, xfer_other)) {
DPRINTF("stall cleared\n");
OpenPOWER on IntegriCloud