RE: [PATCH 1/5] USB: Add parsing of SuperSpeed endpoint companion descriptor.

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

 



Hi Alan,

Please see my inlined questions/comments below.

Thx,
Ashot S. Madatyan

-----Original Message-----
From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx] 
Sent: Wednesday, April 07, 2010 08:19 PM
To: Hrant Dalalyan
Cc: Sarah Sharp; Greg KH; linux-usb@xxxxxxxxxxxxxxx; usb-storage@xxxxxxxxxxxxxxxxxxxxxxxx; Paul Zimmerman; Ashot Madatyan
Subject: RE: [PATCH 1/5] USB: Add parsing of SuperSpeed endpoint companion descriptor.

On Wed, 7 Apr 2010, Hrant Dalalyan wrote:

> While implementing the pipe usage descriptors support, I got several
> issues listed below.
> First is the contradiction between UASP latest spec and USB3.0 spec.
> UASP spec says that pipe usage descriptor is the first descriptor
> following each endpoint descriptor, while USB3.0 says that superspeed
> endpoint companion descriptor shall immediately follow the endpoint
> descriptor. But because USB3.0 has highest priority I decided to place
> superspeed endpoint companion descriptor after endpoint descriptor,
> and pipe usage descriptor after superspeed endpoint companion descriptor.
> And here I got the next issue. usbcore driver stores the pipe usage
> descriptor raw data in the extra field of usb_host_ss_ep_comp structure,
> but per my understanding the raw data should be stored in the extra field
> of usb_host_endpoint structure. When the descriptors are ordered as follows
> (endpoint descriptor -> pipe usage descriptor -> superspeed endpoint
> companion descriptor), the usbcore driver stores the pipe usage descriptor
> raw data in the extra field of the usb_host_endpoint descriptor, but that
> order contradicts the USB3.0 spec.
> 
> Sarah, presuming the USB3.0 spec's higher priority, wouldn't that be
> better to change the way the usbcore handles the descriptors?

I'm not sure what the spirit of the USB 3.0 spec would say, but my
feeling is that the "extra" and "extralen" fields in usb_host_endpoint
should encompass all the following descriptors, including the
SuperSpeed Endpoint Companion descriptor, up to the next endpoint or
interface.

This would mean that there would be need to have a usb_host_ss_ep_comp
structure at all.
[Ashot S. Madatyan] 
This would mean that there would be NO need to have a usb_host_ss_ep_comp
structure at all.
If you meant exactly that, then I quite agree and think this is the best way to go about.

Instead the usb_host_endpoint structure could
directly contain a pointer to struct usb_ss_ep_comp_descriptor.

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