Re: (Fwd) Re: How can I use more than one input pipes with a USB d

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

 



On Fri, Nov 20, 2009 at 01:19:23PM +0100, Wolfgang Wilhelm wrote:
Content-Description: Mail message body
> (resent as plain text)
> 
> Thankyou very much for your quick answers. 
> 
> I attach the output of lsusb -v for our device (FAST ComTec  
> S7889/MCS6) to this email. It uses the same vendor/product id's  
> as a "D-Link DSB-R100 USB FM radio" dsbr100. 
> I have inserted a line "blacklist dsbr100" into /etc/modprobe.d 
> to prevent loading the dsbr100 driver, but our device is still listed 
> as a "FM radio". 
> You are right, our (high speed) device may not work with every controller
> fulfilling the USB 2.0 specification, but in practice the USB controllers 
> and USB interface chips allow to set a different wMaxPacketsize than 512 
> and our Windows driver works fine. We use 64 byte bulk in and out endpoints 
> for reading and writing parameters into / from the device and a 1024 byte 
> bulk endpoint for fast data transfer from the device. These packet sizes 
> were optimized for a data throughput as high as possible.  
> I hope the Linux core will have no problem with it, like Windows. 

It's very unlikely that this device will work under a USB 3.0 host
controller (xHCI).  xHCI host controllers are designed to replace EHCI
host controllers in the future, so you may care about this.

The xHCI host controller must know the max packet size for each
endpoint, and it may reject the configuration if it detects a high speed
bulk endpoint with a non-standard size.  The xHCI spec doesn't specify
that the host controller must check this, but some xHCI hosts are very
strict about following the rules in the USB bus specification.

Is it possible you could use a max packet size of 512 for each of the
bulk endpoints?  You can always send less than the endpoint specifies
for the 64 byte bulk OUT transfers, and you can send two 512-byte packets
for the bulk IN endpoint.

Sarah Sharp
Intel Open Source Technology Center


Content-Description: Text from file 'lsusb.txt'
> 
> Bus 005 Device 002: ID 04b4:1002 Cypress Semiconductor Corp. CY7C63001 R100 FM Radio
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x04b4 Cypress Semiconductor Corp.
>   idProduct          0x1002 CY7C63001 R100 FM Radio
>   bcdDevice            0.00
>   iManufacturer           1 FAST ComTec
>   iProduct                2 S7889
>   iSerial                 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           39
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower              100mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0400  1x 1024 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x86  EP 6 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x08  EP 8 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
> Device Qualifier (for other device speed):
>   bLength                10
>   bDescriptorType         6
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   bNumConfigurations      1
> Device Status:     0x0000
>   (Bus Powered)
> 

--
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