Date: Thu, 19 Mar 2009 14:51:30 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 159445 for review Message-ID: <200903191451.n2JEpUxc070315@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=159445 Change 159445 by hselasky@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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903191451.n2JEpUxc070315>