Re: What are Shared HCD and Companion Controller(HCD?)

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

 



On Tue, Apr 19, 2016 at 10:20:33AM -0400, Alan Stern wrote:
> On Tue, 19 Apr 2016, Felipe Balbi wrote:
> 
> > Hi,
> > 
> > Peter Chen <hzpeterchen@xxxxxxxxx> writes:
> > > Hi all,
> > >
> > > When I review the patch [1] for adding companion controller support for
> > > OTG framework, I am puzzled several concepts, like shared hcd and
> > > companion controller, companion hcd, companion port, would someone
> > > please explain them? And why EHCI/OHCI do not use shared hcd, but
> > > xHCI uses it? Thanks.
> > 
> > xHCI is modeled as two separate buses (High-speed and Super-speed) which
> > *share* the same IP block. In the case of EHCI/OHCI, there is a port
> > being handed over to the a completely separate IP. OHCI is EHCI's
> > companion for non-HS signalling.
> 
> That's right.  In more detail:
> 
> Companion controller and companion hcd are the same thing.  They exist
> because EHCI can only handle high speed connections; it can't handle
> full speed or low speed.  When a USB-1.1 device is plugged into an EHCI
> controller, the EHCI controller can't handle it and so the connection
> is handed over to the companion controller, which is either OHCI or
> UHCI.
> 

I have one more question, if hcd codes takes primary hcd as USB2 and
shared hcd as USB3, are there any problems if EHCI (or OHCI) as primary
hcd and OHCI (EHCI) as shared hcd like [1], current hcd code seems to
use hcd->shared_hcd at drivers/usb/core/port.c

[1] http://www.spinics.net/lists/linux-usb/msg139344.html
-- 

Best Regards,
Peter Chen
--
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