Re: How can I use more than one input pipes with a USB driver?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 19 Nov 2009, Oliver Neukum wrote:

> Am Donnerstag, 19. November 2009 16:30:20 schrieb Wolfgang Wilhelm:
> > Hi,
> > 
> > I am developing a USB linux driver for a special USB
> > high speed device of our company. I need more than one read
> > function as I have more than one bulk input endpoints.
> > How can I do that? (debian 5.03)
> > 
> > I can register only one interface with only one minor number and
> > therefore can use only one struct fileoperations with only one read
> > function from the user space. Is there a trick to overcome this?
> > Is using the ioctl function instead of the read function the only way?
> 
> You can register multiple character devices in probe() in the
> same way the usb serial layer deals with multiport devices.
> 
> > btw, we have a wMaxPacketSize of 64 for one bulk endpoint
> > and 1024 for the other and I see a message in var/log/messages
> > that these are wrong sizes? can I ignore it?
> 
> 1024? Please post "lsusb -v" for your device.

Is this a high-speed device?  Note that for high speed devices, bulk 
endpoints _must_ have a wMaxPacketSize of 512.  This is in the USB 2.0 
specification, section 5.8.3.  Neither 1024 nor 64 is allowed.

For full-speed devices, 64 is okay but 1024 is not.

In short, your device is in violation of the USB specification.  It 
will not pass the USBCV tests and is not allowed to use the USB logo.

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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux