Re: Expose port sequence in the xhci extended capabilities table to usb core.

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

 



On Mon, 10 Dec 2012, Sarah Sharp wrote:

> > Is there any reason the ACPI port number should have any connection
> > with the port numbers used by usbcore, even for USB-2 controllers?
> 
> If there is no connection at all, how is Windows supposed to know which
> ACPI method turns off which port?

You're asking _me_ questions about Windows?  :-)

Yes, I realize that was meant to be a rhetorical question.  I was
really asking if the connection might be embedded as code in an ACPI
driver somewhere, instead of data in some tables.  I guess the answer
is "No".

> > What about hubs that aren't root hubs but are still represented in 
> > ACPI?
> 
> I'm not sure how integrated non-roothub hubs (like rate matching hubs or
> integrated USB 3.0 hubs) will be represented in the ACPI table.  From a
> bus perspective, the external USB 3.0 hubs are two separate devices, but
> physically they're the same device.  Maybe Tianyu can give an example of
> how the ACPI specification says they are supposed to be laid out.
> 
> If the non-roothub USB 3.0 hubs are represented by one ACPI object, that
> could be problematic.  Right now, the USB core isn't able to track the
> USB 3.0 hub with its physical USB 2.0 hub partner.  We can't rely on
> matching with USB 3.0 and USB 2.0 bus topology because xHCI hosts can
> introduce a tier-mismatch by including a rate-matching attached one USB
> 2.0 port.
> 
> Theoretically, you're supposed to be able to match partner hubs by
> looking at the Container ID.  It's supposed to be a serial number that
> both the USB 2.0 hub and the USB 3.0 hub implement.  The serial number
> for each physical hub is supposed to be unique across all hubs from a
> particular manufacturer.  And guess what is all-zeroes in the VIA hubs
> I've bought off the market?  Yep, the Container ID.

Well, if we can't solve that problem then let's ignore it.  :-)

You seem to be saying that core/acpi.c can figure out everything it 
needs, given the list of port speeds as described in the xHCI extended 
capabilities.  But the problem was caused originally by the way we 
split the xHCI root hub into two.  Since that split is implemented in 
xhci-hcd, it seems to me that the xhci-hcd ought to be responsible for 
providing a way to get at the underlying "raw" port list.

So I suggest a new HCD callback: Given a usb_hcd structure and a port
number, return the corresponding "raw" port number.  In the absence of
a callback pointer, we can assume the two values are the same.

Do you think we will ever need to do the mapping in the other 
direction?

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