Date: Sat, 22 Jul 2006 13:14:21 GMT From: Robert Nilsson <rnilsson@mac.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/100718: libusb usb_clear_halt implementation Message-ID: <200607221314.k6MDELJN061162@www.freebsd.org> Resent-Message-ID: <200607221320.k6MDKEiS062366@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 100718 >Category: ports >Synopsis: libusb usb_clear_halt implementation >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Jul 22 13:20:14 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Robert Nilsson >Release: 6.1-RELEASE >Organization: Nilsson Studios >Environment: FreeBSD bsdtest.home.nilssonstudios.com 6.1-RELEASE FreeBSD 6.1-RELEASE #4: Fri Jul 21 11:40:44 CDT 2006 robert@bsdtest.home.nilssonstudios.com:/usr/obj/usr/src/sys/DEBUG i386 >Description: While porting owfs over to BSD I realized the usb_clear_halt function was not implemented in libusb for BSD. >How-To-Repeat: >Fix: --- libusb-0.1.12/bsd.c Fri Mar 3 20:52:46 2006 +++ libusb-0.1.12.rob/bsd.c Fri Jul 21 22:47:55 2006 @@ -623,9 +623,21 @@ int usb_clear_halt(usb_dev_handle *dev, unsigned int ep) { - /* Not yet done, because I haven't needed it. */ + int ret; + struct usb_ctl_request ctl_req; - USB_ERROR_STR(-ENOSYS, "usb_clear_halt called, unimplemented on BSD"); + ctl_req.ucr_addr = 0; // Not used for this type of request + ctl_req.ucr_request.bmRequestType = UT_WRITE_ENDPOINT; + ctl_req.ucr_request.bRequest = UR_CLEAR_FEATURE; + USETW(ctl_req.ucr_request.wValue, UF_ENDPOINT_HALT); + USETW(ctl_req.ucr_request.wIndex, ep); + USETW(ctl_req.ucr_request.wLength, 0); + ctl_req.ucr_flags = 0; + + if ((ret = ioctl(dev->fd, USB_DO_REQUEST, &ctl_req)) < 0) + USB_ERROR_STR(-errno, "clear_halt: failed for %d", ep); + + return ret; } int usb_reset(usb_dev_handle *dev) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607221314.k6MDELJN061162>