On Fri, 6 Mar 2009, Jon Smirl wrote: > It can't find the end point. It is asking for EP 81 on interface 0. You mean 0x81. > if ((uurb->endpoint & USB_ENDPOINT_DIR_MASK) != 0) { > is_in = 1; > ep = ps->dev->ep_in[uurb->endpoint & USB_ENDPOINT_NUMBER_MASK]; > } else { > is_in = 0; > ep = ps->dev->ep_out[uurb->endpoint & USB_ENDPOINT_NUMBER_MASK]; > } > if (!ep) > return -ENOENT; > > Should it be there? Yes, indeed it should. In your original message you said you were using 2.6.28. It's entirely possible that a bug in this area has been fixed in the .stable series -- have you tried 2.6.28.7? > All of this works ok if ftdi_sio is unloaded. Does having ftdi_sio > bound effect these arrays? Not directly, but there could be an indirect effect. > The device only has one interface. You mean only one configuration. > Should the fact the the device was > already in config #1 been detected before generating the error? Before generating which error? It _was_ detected before the failure of the USBDEVFS_SETCONFIGURATION ioctl: > usb 7-2: usbfs: interface 1 claimed by ftdi_sio while 'jtag' sets > config #1 Look at proc_setconfig() in devio.c to see what happens when libftdi does that ioctl. > An attempt to set config #1 when config #1 was already set should be a > nop, right? No, not really. If a driver is already bound to an interface when your program does the Set-Config then the result should be a simple error with no side effects. So with ftdi_sio bound to interface 1, the Set-Config should have done nothing. (You might want to try adding code at the beginning and end of proc_setconfig() to check whether ps->dev->ep_in[1] is set. You might also want to print out its value just before the check in proc_do_submiturb(), just to be extra certain.) But... If none of the interfaces are already bound then the Set-Config request is sent to the device, resetting it, and the kernel resets some of its internal state (including those arrays of endpoint pointers). Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html