PERFORCE change 159445 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Mar 19 07:51:35 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=159445
Change 159445 by hselasky at hselasky_laptop001 on 2009/03/19 14:50:30
USB CORE:
- Fix conditional compilation without ugen and strings.
- Remove a redundant KASSERT.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#10 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#9 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/usb_device.c#10 (text+ko) ====
@@ -738,7 +738,6 @@
*/
usb2_fifo_free_wrap(udev, iface_index, 0);
#endif
-
err = usb2_fill_iface_data(udev, iface_index, alt_index);
if (err) {
goto done;
@@ -1378,8 +1377,6 @@
usb2_cv_init(udev->default_cv, "WCTRL");
usb2_cv_init(udev->default_cv + 1, "UGONE");
- LIST_INIT(&udev->pd_list);
-
/* initialise our mutex */
mtx_init(udev->default_mtx, "USB device mutex", NULL, MTX_DEF);
@@ -1449,18 +1446,21 @@
/* set device index */
udev->device_index = device_index;
+#if USB_HAVE_STRINGS
/* Create ugen name */
snprintf(udev->ugen_name, sizeof(udev->ugen_name),
USB_GENERIC_NAME "%u.%u", device_get_unit(bus->bdev),
device_index);
+#endif
#if USB_HAVE_UGEN
+ LIST_INIT(&udev->pd_list);
+
/* Create the control endpoint device */
udev->default_dev = usb2_make_dev(udev, 0, FREAD|FWRITE);
/* Create a link from /dev/ugenX.X to the default endpoint */
make_dev_alias(udev->default_dev, udev->ugen_name);
#endif
-
if (udev->flags.usb2_mode == USB_MODE_HOST) {
err = usb2_req_set_address(udev, NULL, device_index);
@@ -1713,13 +1713,15 @@
usb2_bus_port_set_device(bus, parent_hub ?
parent_hub->hub->ports + port_index : NULL, udev, device_index);
- /* Link and announce the ugen device name */
#if USB_HAVE_UGEN
+ /* Symlink the ugen device name */
udev->ugen_symlink = usb2_alloc_symlink(udev->ugen_name);
#endif
+#if USB_HAVE_STRINGS
+ /* Announce device */
printf("%s: <%s> at %s\n", udev->ugen_name, udev->manufacturer,
device_get_nameunit(udev->bus->bdev));
-
+#endif
usb2_notify_addq("+", udev);
done:
if (err) {
@@ -1824,7 +1826,6 @@
while ((pd = LIST_FIRST(&udev->pd_list)) != NULL) {
KASSERT(pd->cdev->si_drv1 == pd, ("privdata corrupt"));
- KASSERT(pd->ep_addr > 0, ("freeing EP0"));
destroy_dev_sched_cb(pd->cdev, usb2_cdev_cleanup, pd);
pd->cdev = NULL;
@@ -1856,13 +1857,13 @@
printf("%s: <%s> at %s (disconnected)\n", udev->ugen_name,
udev->manufacturer, device_get_nameunit(bus->bdev));
+#if USB_HAVE_UGEN
/* Destroy UGEN symlink, if any */
if (udev->ugen_symlink) {
-#if USB_HAVE_UGEN
usb2_free_symlink(udev->ugen_symlink);
-#endif
udev->ugen_symlink = NULL;
}
+#endif
/*
* Unregister our device first which will prevent any further
* references:
@@ -1873,7 +1874,6 @@
#if USB_HAVE_UGEN
/* wait for all pending references to go away: */
-
mtx_lock(&usb2_ref_lock);
udev->refcount--;
while (udev->refcount != 0) {
==== //depot/projects/usb/src/sys/dev/usb/usb_device.h#9 (text+ko) ====
@@ -27,7 +27,7 @@
#ifndef _USB2_DEVICE_H_
#define _USB2_DEVICE_H_
-struct usb2_symlink;
+struct usb2_symlink; /* UGEN */
struct usb_device; /* linux compat */
#define USB_DEFAULT_XFER_MAX 2
@@ -121,13 +121,11 @@
struct usb2_xfer *default_xfer[USB_DEFAULT_XFER_MAX];
struct usb2_temp_data *usb2_template_ptr;
struct usb2_pipe *pipe_curr; /* current clear stall pipe */
+#if USB_HAVE_UGEN
struct usb2_fifo *fifo[USB_FIFO_MAX];
-
- char ugen_name[20]; /* name of ugenX.X device */
struct usb2_symlink *ugen_symlink; /* our generic symlink */
-
LIST_HEAD(,usb2_fs_privdata) pd_list;
-
+#endif
usb2_ticks_t plugtime; /* copy of "ticks" */
uint16_t refcount;
@@ -156,9 +154,12 @@
struct usb2_endpoint_descriptor default_ep_desc; /* for pipe 0 */
struct usb2_device_descriptor ddesc; /* device descriptor */
+#if USB_HAVE_STRINGS
+ char ugen_name[20]; /* name of ugenX.X device */
char serial[64]; /* serial number */
char manufacturer[64]; /* manufacturer string */
char product[64]; /* product string */
+#endif
};
/* globals */
More information about the p4-projects
mailing list