X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver/blobdiff_plain/6c235d59caa48963278183c19762c80dbabdec2e..0c2db148a4e604ceeab5eda38efcf64d1ef25c76:/usb-driver.c diff --git a/usb-driver.c b/usb-driver.c index 53a0309..1a37f54 100644 --- a/usb-driver.c +++ b/usb-driver.c @@ -229,20 +229,7 @@ static int do_wdioctl(int fd, unsigned int request, unsigned char *wdioctl) { #ifndef NO_WINDRVR ret = (*ioctl_func) (fd, request, wdioctl); #else - if (xpcu->dev) { - if (!xpcu->handle) { - xpcu->handle = usb_open(xpcu->dev); -#ifndef NO_USB_RESET - if (xpcu->handle) { - usb_reset(xpcu->handle); - xpcu->handle = usb_open(xpcu->dev); - } -#endif - } - - xpcu->interface = xpcu->dev->config[0].interface[usi->dwInterfaceNum].altsetting[usi->dwAlternateSetting].bInterfaceNumber; - xpcu->alternate = usi->dwAlternateSetting; - } + xpcu_set_interface(xpcu, usi); #endif DPRINTF("unique: %lu, interfacenum: %lu, alternatesetting: %lu, options: %lx\n", usi->dwUniqueID, usi->dwInterfaceNum, @@ -633,13 +620,9 @@ int close(int fd) { if (fd == windrvrfd && windrvrfd >= 0) { DPRINTF("close windrvrfd\n"); - if (xpcu->handle) { - xpcu_claim(xpcu, XPCU_RELEASE); - usb_close(xpcu->handle); - } + if (xpcu) + xpcu_close(xpcu); - xpcu->handle = NULL; - xpcu->interface = -1; xpcu = NULL; windrvrfd = -1; }