]> cvs.zerfleddert.de Git - usb-driver/blobdiff - usb-driver.c
add xpcu_set_interface
[usb-driver] / usb-driver.c
index 53a0309f6b93cc555770288519c74fd7e93dd2c1..1a37f54255ec4d098792163def8066eed65b0a0d 100644 (file)
@@ -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;
        }
Impressum, Datenschutz