PERFORCE change 159909 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Fri Mar 27 08:28:00 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=159909
Change 159909 by hselasky at hselasky_laptop001 on 2009/03/27 15:27:42
USB core + drivers + minor API-change
- add new functionality conditionals:
- USB_HAVE_POWERD
- USB_HAVE_TT_SUPPORT
- USB_HAVE_MSCTEST
- make usb2_power_mask_t 16-bit
- remove "usb2_config_sub" structure from
"usb2_config". To compensate for this
"usb2_config" has a new field called "usb_mode"
which select for which mode the current xfer
entry is active. Options are: a) Device mode only
b) Host mode only (default-by-zero) c) Both modes.
This change was scripted using the following sed
script: "s/\.mh\././g".
- the standard packet size table in "usb_transfer.c" is
now a function, hence the code for the function uses
less memory than the table itself. Tested on 8-bit AVR.
Assumed to also be the case on 32-bit platforms when
the table size grows.
Affected files ...
.. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#10 edit
.. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#38 edit
.. //depot/projects/usb/src/sys/dev/usb/bluetooth/ng_ubt.c#4 edit
.. //depot/projects/usb/src/sys/dev/usb/bluetooth/ubtbcmfw.c#4 edit
.. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/input/ums.c#8 edit
.. //depot/projects/usb/src/sys/dev/usb/misc/udbp.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#4 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_cdcereg.h#2 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_rue.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/net/if_udav.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/u3g.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uark.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ubsa.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ubser.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uchcom.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ucycom.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ufoma.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#4 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ugensa.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/umct.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/umodem.c#8 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/umoscom.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uplcom.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uslcom.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/serial/uvscom.c#3 edit
.. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#11 edit
.. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#33 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_core.h#9 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#19 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#13 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#10 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#5 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#9 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.h#6 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_msctest.c#6 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_request.c#8 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#136 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.h#6 edit
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_rum.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_ural.c#7 edit
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#7 edit
Differences ...
==== //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#10 (text+ko) ====
@@ -93,20 +93,20 @@
.endpoint = 0x00, /* control pipe */
.direction = UE_DIR_ANY,
.if_index = 0,
- .mh.bufsize = USBD_CTRL_READ_BUFFER_SIZE,
- .mh.flags = { .short_xfer_ok = 1, },
- .mh.callback = &usbd_ctrl_callback,
- .mh.timeout = 5000, /* 5 seconds */
+ .bufsize = USBD_CTRL_READ_BUFFER_SIZE,
+ .flags = { .short_xfer_ok = 1, },
+ .callback = &usbd_ctrl_callback,
+ .timeout = 5000, /* 5 seconds */
},
[USBD_CTRL_WRITE_PIPE] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* control pipe */
.direction = UE_DIR_ANY,
.if_index = 0,
- .mh.bufsize = USBD_CTRL_WRITE_BUFFER_SIZE,
- .mh.flags = { .proxy_buffer = 1, },
- .mh.callback = &usbd_ctrl_callback,
- .mh.timeout = 5000, /* 5 seconds */
+ .bufsize = USBD_CTRL_WRITE_BUFFER_SIZE,
+ .flags = { .proxy_buffer = 1, },
+ .callback = &usbd_ctrl_callback,
+ .timeout = 5000, /* 5 seconds */
}
};
@@ -674,11 +674,11 @@
cfg.type = UE_GET_XFERTYPE(ep->bmAttributes);
cfg.endpoint = UE_GET_ADDR(ep->bEndpointAddress);
cfg.direction = UE_GET_DIR(ep->bEndpointAddress);
- cfg.mh.callback = &usbd_non_isoc_callback;
- cfg.mh.bufsize = UGETW(ep->wMaxPacketSize);
- cfg.mh.flags.proxy_buffer = 1;
+ cfg.callback = &usbd_non_isoc_callback;
+ cfg.bufsize = UGETW(ep->wMaxPacketSize);
+ cfg.flags.proxy_buffer = 1;
if (UE_GET_DIR(ep->bEndpointAddress) == UE_DIR_IN)
- cfg.mh.flags.short_xfer_ok = 1;
+ cfg.flags.short_xfer_ok = 1;
status = usb2_transfer_setup(sc->ndisusb_dev, &ifidx, ne->ne_xfer,
&cfg, 1, sc, &sc->ndisusb_mtx);
==== //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#38 (text+ko) ====
@@ -400,20 +400,20 @@
.type = UE_ISOCHRONOUS,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UAUDIO_MINFRAMES,
- .mh.flags = {.short_xfer_ok = 1,},
- .mh.callback = &uaudio_chan_record_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UAUDIO_MINFRAMES,
+ .flags = {.short_xfer_ok = 1,},
+ .callback = &uaudio_chan_record_callback,
},
[1] = {
.type = UE_ISOCHRONOUS,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UAUDIO_MINFRAMES,
- .mh.flags = {.short_xfer_ok = 1,},
- .mh.callback = &uaudio_chan_record_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UAUDIO_MINFRAMES,
+ .flags = {.short_xfer_ok = 1,},
+ .callback = &uaudio_chan_record_callback,
},
};
@@ -423,20 +423,20 @@
.type = UE_ISOCHRONOUS,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UAUDIO_MINFRAMES,
- .mh.flags = {.short_xfer_ok = 1,},
- .mh.callback = &uaudio_chan_play_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UAUDIO_MINFRAMES,
+ .flags = {.short_xfer_ok = 1,},
+ .callback = &uaudio_chan_play_callback,
},
[1] = {
.type = UE_ISOCHRONOUS,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UAUDIO_MINFRAMES,
- .mh.flags = {.short_xfer_ok = 1,},
- .mh.callback = &uaudio_chan_play_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UAUDIO_MINFRAMES,
+ .flags = {.short_xfer_ok = 1,},
+ .callback = &uaudio_chan_play_callback,
},
};
@@ -446,9 +446,9 @@
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = (sizeof(struct usb2_device_request) + 4),
- .mh.callback = &uaudio_mixer_write_cfg_callback,
- .mh.timeout = 1000, /* 1 second */
+ .bufsize = (sizeof(struct usb2_device_request) + 4),
+ .callback = &uaudio_mixer_write_cfg_callback,
+ .timeout = 1000, /* 1 second */
},
};
@@ -478,40 +478,40 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = UMIDI_BULK_SIZE,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = &umidi_bulk_write_callback,
+ .bufsize = UMIDI_BULK_SIZE,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = &umidi_bulk_write_callback,
},
[1] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = UMIDI_BULK_SIZE,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = &umidi_bulk_read_callback,
+ .bufsize = UMIDI_BULK_SIZE,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = &umidi_bulk_read_callback,
},
[2] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request),
- .mh.flags = {},
- .mh.callback = &umidi_write_clear_stall_callback,
- .mh.timeout = 1000, /* 1 second */
- .mh.interval = 50, /* 50ms */
+ .bufsize = sizeof(struct usb2_device_request),
+ .flags = {},
+ .callback = &umidi_write_clear_stall_callback,
+ .timeout = 1000, /* 1 second */
+ .interval = 50, /* 50ms */
},
[3] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request),
- .mh.flags = {},
- .mh.callback = &umidi_read_clear_stall_callback,
- .mh.timeout = 1000, /* 1 second */
- .mh.interval = 50, /* 50ms */
+ .bufsize = sizeof(struct usb2_device_request),
+ .flags = {},
+ .callback = &umidi_read_clear_stall_callback,
+ .timeout = 1000, /* 1 second */
+ .interval = 50, /* 50ms */
},
};
==== //depot/projects/usb/src/sys/dev/usb/bluetooth/ng_ubt.c#4 (text+ko) ====
@@ -276,9 +276,9 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
.if_index = 0,
- .mh.bufsize = UBT_BULK_WRITE_BUFFER_SIZE,
- .mh.flags = { .pipe_bof = 1, .force_short_xfer = 1, },
- .mh.callback = &ubt_bulk_write_callback,
+ .bufsize = UBT_BULK_WRITE_BUFFER_SIZE,
+ .flags = { .pipe_bof = 1, .force_short_xfer = 1, },
+ .callback = &ubt_bulk_write_callback,
},
/* Incoming bulk transfer - ACL packets */
[UBT_IF_0_BULK_DT_RD] = {
@@ -286,9 +286,9 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.if_index = 0,
- .mh.bufsize = UBT_BULK_READ_BUFFER_SIZE,
- .mh.flags = { .pipe_bof = 1, .short_xfer_ok = 1, },
- .mh.callback = &ubt_bulk_read_callback,
+ .bufsize = UBT_BULK_READ_BUFFER_SIZE,
+ .flags = { .pipe_bof = 1, .short_xfer_ok = 1, },
+ .callback = &ubt_bulk_read_callback,
},
/* Incoming interrupt transfer - HCI events */
[UBT_IF_0_INTR_DT_RD] = {
@@ -296,9 +296,9 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.if_index = 0,
- .mh.flags = { .pipe_bof = 1, .short_xfer_ok = 1, },
- .mh.bufsize = UBT_INTR_BUFFER_SIZE,
- .mh.callback = &ubt_intr_read_callback,
+ .flags = { .pipe_bof = 1, .short_xfer_ok = 1, },
+ .bufsize = UBT_INTR_BUFFER_SIZE,
+ .callback = &ubt_intr_read_callback,
},
/* Outgoing control transfer - HCI commands */
[UBT_IF_0_CTRL_DT_WR] = {
@@ -306,9 +306,9 @@
.endpoint = 0x00, /* control pipe */
.direction = UE_DIR_ANY,
.if_index = 0,
- .mh.bufsize = UBT_CTRL_BUFFER_SIZE,
- .mh.callback = &ubt_ctrl_write_callback,
- .mh.timeout = 5000, /* 5 seconds */
+ .bufsize = UBT_CTRL_BUFFER_SIZE,
+ .callback = &ubt_ctrl_write_callback,
+ .timeout = 5000, /* 5 seconds */
},
/*
@@ -321,10 +321,10 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.if_index = 1,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UBT_ISOC_NFRAMES,
- .mh.flags = { .short_xfer_ok = 1, },
- .mh.callback = &ubt_isoc_read_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UBT_ISOC_NFRAMES,
+ .flags = { .short_xfer_ok = 1, },
+ .callback = &ubt_isoc_read_callback,
},
/* Incoming isochronous transfer #2 - SCO packets */
[UBT_IF_1_ISOC_DT_RD2] = {
@@ -332,10 +332,10 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
.if_index = 1,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UBT_ISOC_NFRAMES,
- .mh.flags = { .short_xfer_ok = 1, },
- .mh.callback = &ubt_isoc_read_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UBT_ISOC_NFRAMES,
+ .flags = { .short_xfer_ok = 1, },
+ .callback = &ubt_isoc_read_callback,
},
/* Outgoing isochronous transfer #1 - SCO packets */
[UBT_IF_1_ISOC_DT_WR1] = {
@@ -343,10 +343,10 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
.if_index = 1,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UBT_ISOC_NFRAMES,
- .mh.flags = { .short_xfer_ok = 1, },
- .mh.callback = &ubt_isoc_write_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UBT_ISOC_NFRAMES,
+ .flags = { .short_xfer_ok = 1, },
+ .callback = &ubt_isoc_write_callback,
},
/* Outgoing isochronous transfer #2 - SCO packets */
[UBT_IF_1_ISOC_DT_WR2] = {
@@ -354,10 +354,10 @@
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
.if_index = 1,
- .mh.bufsize = 0, /* use "wMaxPacketSize * frames" */
- .mh.frames = UBT_ISOC_NFRAMES,
- .mh.flags = { .short_xfer_ok = 1, },
- .mh.callback = &ubt_isoc_write_callback,
+ .bufsize = 0, /* use "wMaxPacketSize * frames" */
+ .frames = UBT_ISOC_NFRAMES,
+ .flags = { .short_xfer_ok = 1, },
+ .callback = &ubt_isoc_write_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/bluetooth/ubtbcmfw.c#4 (text+ko) ====
@@ -118,10 +118,10 @@
.endpoint = 0x02, /* fixed */
.direction = UE_DIR_OUT,
.if_index = UBTBCMFW_IFACE_IDX,
- .mh.bufsize = UBTBCMFW_BSIZE,
- .mh.flags = { .pipe_bof = 1, .force_short_xfer = 1,
+ .bufsize = UBTBCMFW_BSIZE,
+ .flags = { .pipe_bof = 1, .force_short_xfer = 1,
.proxy_buffer = 1, },
- .mh.callback = &ubtbcmfw_write_callback,
+ .callback = &ubtbcmfw_write_callback,
},
[UBTBCMFW_INTR_DT_RD] = {
@@ -129,10 +129,10 @@
.endpoint = 0x01, /* fixed */
.direction = UE_DIR_IN,
.if_index = UBTBCMFW_IFACE_IDX,
- .mh.bufsize = UBTBCMFW_BSIZE,
- .mh.flags = { .pipe_bof = 1, .short_xfer_ok = 1,
+ .bufsize = UBTBCMFW_BSIZE,
+ .flags = { .pipe_bof = 1, .short_xfer_ok = 1,
.proxy_buffer = 1, },
- .mh.callback = &ubtbcmfw_read_callback,
+ .callback = &ubtbcmfw_read_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#9 (text+ko) ====
@@ -205,11 +205,12 @@
mtx_lock(&Giant);
+#if USB_HAVE_POWERD
/*
* First update the USB power state!
*/
usb2_bus_powerd(bus);
-
+#endif
/*
* Explore the Root USB HUB. This call can sleep,
* exiting Giant, which is actually Giant.
@@ -263,6 +264,7 @@
bus->bdev = NULL;
}
+#if USB_HAVE_POWERD
static void
usb2_power_wdog(void *arg)
{
@@ -279,6 +281,7 @@
USB_BUS_LOCK(bus);
}
+#endif
/*------------------------------------------------------------------------*
* usb2_bus_attach
@@ -328,6 +331,20 @@
USB_BUS_UNLOCK(bus);
mtx_lock(&Giant); /* XXX not required by USB */
+ /* default power_mask value */
+ bus->hw_power_state =
+ USB_HW_POWER_CONTROL |
+ USB_HW_POWER_BULK |
+ USB_HW_POWER_INTERRUPT |
+ USB_HW_POWER_ISOC |
+ USB_HW_POWER_NON_ROOT_HUB;
+
+ /* make sure power is set at least once */
+
+ if (bus->methods->set_hw_power != NULL) {
+ (bus->methods->set_hw_power) (bus);
+ }
+
/* Allocate the Root USB device */
child = usb2_alloc_device(bus->bdev, bus, NULL, 0, 0, 1,
@@ -356,8 +373,10 @@
/* set softc - we are ready */
device_set_softc(dev, bus);
+#if USB_HAVE_POWERD
/* start watchdog */
usb2_power_wdog(bus);
+#endif
}
/*------------------------------------------------------------------------*
==== //depot/projects/usb/src/sys/dev/usb/input/uhid.c#6 (text+ko) ====
@@ -316,27 +316,27 @@
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = UHID_BSIZE,
- .mh.callback = &uhid_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = UHID_BSIZE,
+ .callback = &uhid_intr_callback,
},
[UHID_CTRL_DT_WR] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request) + UHID_BSIZE,
- .mh.callback = &uhid_write_callback,
- .mh.timeout = 1000, /* 1 second */
+ .bufsize = sizeof(struct usb2_device_request) + UHID_BSIZE,
+ .callback = &uhid_write_callback,
+ .timeout = 1000, /* 1 second */
},
[UHID_CTRL_DT_RD] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request) + UHID_BSIZE,
- .mh.callback = &uhid_read_callback,
- .mh.timeout = 1000, /* 1 second */
+ .bufsize = sizeof(struct usb2_device_request) + UHID_BSIZE,
+ .callback = &uhid_read_callback,
+ .timeout = 1000, /* 1 second */
},
};
==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#3 (text+ko) ====
@@ -562,28 +562,28 @@
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = 0, /* use wMaxPacketSize */
- .mh.callback = &ukbd_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = 0, /* use wMaxPacketSize */
+ .callback = &ukbd_intr_callback,
},
[UKBD_INTR_CS] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request),
- .mh.callback = &ukbd_clear_stall_callback,
- .mh.timeout = 1000, /* 1 second */
- .mh.interval = 50, /* 50ms */
+ .bufsize = sizeof(struct usb2_device_request),
+ .callback = &ukbd_clear_stall_callback,
+ .timeout = 1000, /* 1 second */
+ .interval = 50, /* 50ms */
},
[UKBD_CTRL_LED] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request) + 1,
- .mh.callback = &ukbd_set_leds_callback,
- .mh.timeout = 1000, /* 1 second */
+ .bufsize = sizeof(struct usb2_device_request) + 1,
+ .callback = &ukbd_set_leds_callback,
+ .timeout = 1000, /* 1 second */
},
};
==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#8 (text+ko) ====
@@ -312,9 +312,9 @@
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = 0, /* use wMaxPacketSize */
- .mh.callback = &ums_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = 0, /* use wMaxPacketSize */
+ .callback = &ums_intr_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/misc/udbp.c#5 (text+ko) ====
@@ -192,39 +192,39 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = UDBP_BUFFERSIZE,
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
- .mh.callback = &udbp_bulk_write_callback,
- .mh.timeout = UDBP_TIMEOUT,
+ .bufsize = UDBP_BUFFERSIZE,
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+ .callback = &udbp_bulk_write_callback,
+ .timeout = UDBP_TIMEOUT,
},
[UDBP_T_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = UDBP_BUFFERSIZE,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = &udbp_bulk_read_callback,
+ .bufsize = UDBP_BUFFERSIZE,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = &udbp_bulk_read_callback,
},
[UDBP_T_WR_CS] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request),
- .mh.callback = &udbp_bulk_write_clear_stall_callback,
- .mh.timeout = 1000, /* 1 second */
- .mh.interval = 50, /* 50ms */
+ .bufsize = sizeof(struct usb2_device_request),
+ .callback = &udbp_bulk_write_clear_stall_callback,
+ .timeout = 1000, /* 1 second */
+ .interval = 50, /* 50ms */
},
[UDBP_T_RD_CS] = {
.type = UE_CONTROL,
.endpoint = 0x00, /* Control pipe */
.direction = UE_DIR_ANY,
- .mh.bufsize = sizeof(struct usb2_device_request),
- .mh.callback = &udbp_bulk_read_clear_stall_callback,
- .mh.timeout = 1000, /* 1 second */
- .mh.interval = 50, /* 50ms */
+ .bufsize = sizeof(struct usb2_device_request),
+ .callback = &udbp_bulk_read_clear_stall_callback,
+ .timeout = 1000, /* 1 second */
+ .interval = 50, /* 50ms */
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#3 (text+ko) ====
@@ -209,28 +209,28 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = (MCLBYTES + 2),
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
- .mh.callback = aue_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = (MCLBYTES + 2),
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+ .callback = aue_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[AUE_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = (MCLBYTES + 4 + ETHER_CRC_LEN),
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = aue_bulk_read_callback,
+ .bufsize = (MCLBYTES + 4 + ETHER_CRC_LEN),
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = aue_bulk_read_callback,
},
[AUE_INTR_DT_RD] = {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = 0, /* use wMaxPacketSize */
- .mh.callback = aue_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = 0, /* use wMaxPacketSize */
+ .callback = aue_intr_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#4 (text+ko) ====
@@ -182,10 +182,10 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = AXE_BULK_BUF_SIZE,
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
- .mh.callback = axe_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = AXE_BULK_BUF_SIZE,
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+ .callback = axe_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[AXE_BULK_DT_RD] = {
@@ -195,19 +195,19 @@
#if (MCLBYTES < 2048)
#error "(MCLBYTES < 2048)"
#endif
- .mh.bufsize = MCLBYTES,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = axe_bulk_read_callback,
- .mh.timeout = 0, /* no timeout */
+ .bufsize = MCLBYTES,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = axe_bulk_read_callback,
+ .timeout = 0, /* no timeout */
},
[AXE_INTR_DT_RD] = {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = 0, /* use wMaxPacketSize */
- .mh.callback = axe_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = 0, /* use wMaxPacketSize */
+ .callback = axe_intr_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_cdce.c#6 (text+ko) ====
@@ -96,59 +96,54 @@
static const struct usb2_config cdce_config[CDCE_N_TRANSFER] = {
- [CDCE_BULK_A] = {
+ [CDCE_BULK_RX] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
- .direction = UE_DIR_OUT,
+ .direction = UE_DIR_RX,
.if_index = 0,
- /* Host Mode */
- .mh.frames = CDCE_FRAMES_MAX,
- .mh.bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,.ext_buffer = 1,},
- .mh.callback = cdce_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
- /* Device Mode */
- .md.frames = CDCE_FRAMES_MAX,
- .md.bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
- .md.flags = {.pipe_bof = 1,.short_frames_ok = 1,.short_xfer_ok = 1,.ext_buffer = 1,},
- .md.callback = cdce_bulk_read_callback,
- .md.timeout = 0, /* no timeout */
+ .frames = CDCE_FRAMES_MAX,
+ .bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
+ .flags = {.pipe_bof = 1,.short_frames_ok = 1,.short_xfer_ok = 1,.ext_buffer = 1,},
+ .callback = cdce_bulk_read_callback,
+ .timeout = 0, /* no timeout */
+ .usb_mode = USB_MODE_MAX, /* both modes */
},
- [CDCE_BULK_B] = {
+ [CDCE_BULK_TX] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
- .direction = UE_DIR_IN,
+ .direction = UE_DIR_TX,
.if_index = 0,
- /* Host Mode */
- .mh.frames = CDCE_FRAMES_MAX,
- .mh.bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
- .mh.flags = {.pipe_bof = 1,.short_frames_ok = 1,.short_xfer_ok = 1,.ext_buffer = 1,},
- .mh.callback = cdce_bulk_read_callback,
- .mh.timeout = 0, /* no timeout */
- /* Device Mode */
- .md.frames = CDCE_FRAMES_MAX,
- .md.bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
- .md.flags = {.pipe_bof = 1,.force_short_xfer = 1,.ext_buffer = 1,},
- .md.callback = cdce_bulk_write_callback,
- .md.timeout = 10000, /* 10 seconds */
+ .frames = CDCE_FRAMES_MAX,
+ .bufsize = (CDCE_FRAMES_MAX * MCLBYTES),
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,.ext_buffer = 1,},
+ .callback = cdce_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
+ .usb_mode = USB_MODE_MAX, /* both modes */
+ },
+
+ [CDCE_INTR_RX] = {
+ .type = UE_INTERRUPT,
+ .endpoint = UE_ADDR_ANY,
+ .direction = UE_DIR_RX,
+ .if_index = 1,
+ .bufsize = CDCE_IND_SIZE_MAX,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,.no_pipe_ok = 1,},
+ .callback = cdce_intr_read_callback,
+ .timeout = 0,
+ .usb_mode = USB_MODE_HOST,
},
- [CDCE_INTR] = {
+ [CDCE_INTR_TX] = {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
- .direction = UE_DIR_IN,
+ .direction = UE_DIR_TX,
.if_index = 1,
- /* Host Mode */
- .mh.bufsize = CDCE_IND_SIZE_MAX,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,.no_pipe_ok = 1,},
- .mh.callback = cdce_intr_read_callback,
- .mh.timeout = 0,
- /* Device Mode */
- .md.bufsize = CDCE_IND_SIZE_MAX,
- .md.flags = {.pipe_bof = 1,.force_short_xfer = 1,.no_pipe_ok = 1,},
- .md.callback = cdce_intr_write_callback,
- .md.timeout = 10000, /* 10 seconds */
+ .bufsize = CDCE_IND_SIZE_MAX,
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,.no_pipe_ok = 1,},
+ .callback = cdce_intr_write_callback,
+ .timeout = 10000, /* 10 seconds */
+ .usb_mode = USB_MODE_DEVICE,
},
};
@@ -416,8 +411,8 @@
/*
* Start the USB transfers, if not already started:
*/
- usb2_transfer_start(sc->sc_xfer[CDCE_BULK_B]);
- usb2_transfer_start(sc->sc_xfer[CDCE_BULK_A]);
+ usb2_transfer_start(sc->sc_xfer[CDCE_BULK_TX]);
+ usb2_transfer_start(sc->sc_xfer[CDCE_BULK_RX]);
}
static void
@@ -557,13 +552,11 @@
ifp->if_drv_flags |= IFF_DRV_RUNNING;
/* start interrupt transfer */
- usb2_transfer_start(sc->sc_xfer[CDCE_INTR]);
+ usb2_transfer_start(sc->sc_xfer[CDCE_INTR_RX]);
+ usb2_transfer_start(sc->sc_xfer[CDCE_INTR_TX]);
/* stall data write direction, which depends on USB mode */
- if (usb2_get_mode(sc->sc_ue.ue_udev) == USB_MODE_HOST)
- usb2_transfer_set_stall(sc->sc_xfer[CDCE_BULK_A]);
- else
- usb2_transfer_set_stall(sc->sc_xfer[CDCE_BULK_B]);
+ usb2_transfer_set_stall(sc->sc_xfer[CDCE_BULK_TX]);
/* start data transfers */
cdce_start(ue);
@@ -582,9 +575,10 @@
/*
* stop all the transfers, if not already stopped:
*/
- usb2_transfer_stop(sc->sc_xfer[CDCE_BULK_A]);
- usb2_transfer_stop(sc->sc_xfer[CDCE_BULK_B]);
- usb2_transfer_stop(sc->sc_xfer[CDCE_INTR]);
+ usb2_transfer_stop(sc->sc_xfer[CDCE_BULK_RX]);
+ usb2_transfer_stop(sc->sc_xfer[CDCE_BULK_TX]);
+ usb2_transfer_stop(sc->sc_xfer[CDCE_INTR_RX]);
+ usb2_transfer_stop(sc->sc_xfer[CDCE_INTR_TX]);
}
static void
==== //depot/projects/usb/src/sys/dev/usb/net/if_cdcereg.h#2 (text+ko) ====
@@ -39,9 +39,10 @@
#define CDCE_IND_SIZE_MAX 32 /* bytes */
enum {
- CDCE_BULK_A,
- CDCE_BULK_B,
- CDCE_INTR,
+ CDCE_BULK_RX,
+ CDCE_BULK_TX,
+ CDCE_INTR_RX,
+ CDCE_INTR_TX,
CDCE_N_TRANSFER,
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#3 (text+ko) ====
@@ -121,19 +121,19 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = (MCLBYTES + 2),
- .mh.flags = {.pipe_bof = 1,},
- .mh.callback = cue_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = (MCLBYTES + 2),
+ .flags = {.pipe_bof = 1,},
+ .callback = cue_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[CUE_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = (MCLBYTES + 2),
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = cue_bulk_read_callback,
+ .bufsize = (MCLBYTES + 2),
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = cue_bulk_read_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#3 (text+ko) ====
@@ -163,20 +163,20 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = (MCLBYTES + 2 + 64),
- .mh.flags = {.pipe_bof = 1,},
- .mh.callback = kue_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = (MCLBYTES + 2 + 64),
+ .flags = {.pipe_bof = 1,},
+ .callback = kue_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[KUE_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = (MCLBYTES + 2),
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = kue_bulk_read_callback,
- .mh.timeout = 0, /* no timeout */
+ .bufsize = (MCLBYTES + 2),
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = kue_bulk_read_callback,
+ .timeout = 0, /* no timeout */
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_rue.c#3 (text+ko) ====
@@ -141,29 +141,29 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = MCLBYTES,
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
- .mh.callback = rue_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = MCLBYTES,
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+ .callback = rue_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[RUE_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = (MCLBYTES + 4),
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = rue_bulk_read_callback,
- .mh.timeout = 0, /* no timeout */
+ .bufsize = (MCLBYTES + 4),
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .callback = rue_bulk_read_callback,
+ .timeout = 0, /* no timeout */
},
[RUE_INTR_DT_RD] = {
.type = UE_INTERRUPT,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.bufsize = 0, /* use wMaxPacketSize */
- .mh.callback = rue_intr_callback,
+ .flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
+ .bufsize = 0, /* use wMaxPacketSize */
+ .callback = rue_intr_callback,
},
};
==== //depot/projects/usb/src/sys/dev/usb/net/if_udav.c#3 (text+ko) ====
@@ -101,29 +101,29 @@
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_OUT,
- .mh.bufsize = (MCLBYTES + 2),
- .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
- .mh.callback = udav_bulk_write_callback,
- .mh.timeout = 10000, /* 10 seconds */
+ .bufsize = (MCLBYTES + 2),
+ .flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+ .callback = udav_bulk_write_callback,
+ .timeout = 10000, /* 10 seconds */
},
[UDAV_BULK_DT_RD] = {
.type = UE_BULK,
.endpoint = UE_ADDR_ANY,
.direction = UE_DIR_IN,
- .mh.bufsize = (MCLBYTES + 3),
- .mh.flags = {.pipe_bof = 1,.short_xfer_ok = 1,},
- .mh.callback = udav_bulk_read_callback,
- .mh.timeout = 0, /* no timeout */
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list