Odp: Re: PD: [Bug 92341] xHCI USB driver, support for non-conformant HS USB devices with bulk endpoints of maxpacket size different than 512

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

 



Dnia Niedziela, 1 Lutego 2015 02:10 Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> napisał(a)
> On Sat, Jan 31, 2015 at 10:48:36PM +0100, Kazimierz Marzec wrote:
> > Good day,
> > could You please take a look at
> > https://bugzilla.kernel.org/show_bug.cgi?id=92341
>  
> How about posting the full information here, it makes it hard to comment
> on things if you just post a single web link.
>  
> thanks,
>  
> greg k-h
I beg Your pardon for any inconvenience.
Bug/request details follows:

I'd like to ask if xHCI USB driver developers plan to add support fornon-conformant High Speed USB devices with bulk endpoints of size different than 512B?
In EHCI these devices work, however the following message appears @enumeration for each bulk endpoint in device:
bulk endpoint XX has invalid maxpacket XX.
In xHCI such non-conformat device is being continously reset.
I develop such devices, and simply can not change maxpacket size to 512B.
Explanation follows.
I use Atmel's SAM3U4 chips with HS USB PHY.
There are 8 endpoints available, two of which may be set up to 512B, another two up to 1024B and others up to 64B (hardware limitation).
These endpoints are double or tripple buffered, so each endpoint consumes either 1024 up to 1536B of available FIFO RAM for USB controller.
And there is only 4096B of FIFO RAM available for all endpoints.
There is no problem if I implement MassStorageDevice class device.
I simply use endpoints with 512B of RAM. No sweat.
Issues arise when more endpoints are being used.
I develop composite device (mass_storage + vendor classes).
For vendor class device I must assign two endpoints (one IN and one OUT),
and I do not meet the 4kB FIFO RAM limit present in SAM3U4's USB controller.
2EPs for MSD + 2EPs for Vendor = 2 * 1024B + 2*1536B = 5kB of RAM.
I simply MUST use bulk endpoints with less than 512B of maxpacket data.
And this prevents my device from working on xHCI USB.
Luckily, in BIOS I still can choose operating mode for USB ports,
but since USB2.0 (EHCI) will soon be replaced with USB3.0 (xHCI),
I have to think about it now.

All Atmel's and other manuf's chips with on-board HS USB PHY have only 4096B FIFO,
 so I just can not change chip.




Today I'll apply patch suggested by Alan Stern and let You know about results.
Good day.
 



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