#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,
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;
}