Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Mar 2009 15:27:58 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 159909 for review
Message-ID:  <200903271527.n2RFRwTg004920@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=159909

Change 159909 by hselasky@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) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903271527.n2RFRwTg004920>