Thanks Dave,

So the current application of HNP is only to correct wrongly connected cable?  
I don't think it's the original target of adding OTG to USB.  Though we don't 
have much examples of OTG usage in the market, I do think OTG is to add the 
peer-to-peer ability to the previous client/server USB architecture.  Both 
sides have the ability to initialize connection and transmit.  As more and more 
hand held devices are becoming PC alike, the peer-to-peer communication between 
them should be very useful.  However, Bluetooth is also a good option for 
providing this.  What do you think of the future of USB OTG?  How can we drive 
it from the software point of view?

Best Regards,
Leo


> -----Original Message-----
> From: David Brownell [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 01, 2006 6:04 AM
> To: Li Yang-r58472
> Cc: linux-usb-devel@lists.sourceforge.net
> Subject: Re: Question about OTG operations
> 
> On Tuesday 28 February 2006 4:15 am, Li Yang-r58472 wrote:
> >
> > I'm doing OTG support on a Freescale PowerPC platform.
> > The basic ID specified role change can work correctly.
> 
> Good ... that's the first milestone!  I'm assuming you're
> using a 2.6.10 (or newer) kernel, since that's where the
> first OTG implementation (for OMAP) was merged.  If not,
> then upgrade ASAP.
> 
> 
> > However, when I dig into the HNP role change, I don't
> > quite understand the operation mechanism for current
> > OTG design.  The HNP is triggered by host suspend, but
> > current host stack doesn't seem to suspend automatically.
> 
> See drivers/usb/core/hub.c in usb_new_device() ...
> 
>  - it checks devices for OTG descriptors, and sets
>    the host and peripheral side HNP capability bits
>    appropriately;
> 
>  - when the device isn't in the whitelist (a.k.a. the
>    "Targeted Peripherals List" of the OTG spec) then
>    it's either (a) suspended if it supports HNP, or
>    else (b) enumeration is aborted.
> 
> That's all clearly #ifdef CONFIG_USB_OTG so it should
> be easy to find.  On the peripheral side it should all
> be pretty automatic, both setting B_HNP_ENABLE feature
> and then kicking in HNP when the peripheral is suspended.
> 
> 
> > As far as I understand, the inputs of OTG state machine
> > a_bus_drop, a_suspend_req, a_bus_req and b_bus_req should
> > be set/cleared by high level application.
> 
> For now we assume *_bus_req are true, though on the host
> side drivers will eventually be able to suspend themselves
> and thus implicitly clear their bus request.
> 
> 
> > What is the proper interface to control these parameters
> > according to the current design?
> 
> Most of those are implicit; there's no requirement for any
> explicit control.
> 
> When we start seeing more OTG-enabled products or systems,
> then we'll start learning more about what additional use
> cases are important.
> 
> - Dave


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to