> > -   return (dev->devnum << 8) | (endpoint << 15) |
> > +   return (dev->devnum << 8) | ((endpoint & 0xf) << 15) |
> >             ((dev->speed == USB_SPEED_LOW) << 26);
> 
> Total 16 endpoints? Did you mean 0x7f?

In usb.h:

/*
 * Calling this entity a "pipe" is glorifying it. A USB pipe
 * is something embarrassingly simple: it basically consists
 * of the following information:
 *  - device number (7 bits)
 *  - endpoint number (4 bits)

#define usb_pipedevice(pipe)    (((pipe) >> 8) & 0x7f)
#define usb_pipe_endpdev(pipe)  (((pipe) >> 8) & 0x7ff)
#define usb_pipeendpoint(pipe)  (((pipe) >> 15) & 0xf)

It is possible that the spare bits to the left of the endpoint
are left there for future expansion, but so far the limit is 16.

-- Pete

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to