> -----Original Message-----
> From: David Brownell [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 01, 2006 12:59 PM
> To: Li Yang-r58472
> Cc: linux-usb-devel@lists.sourceforge.net
> Subject: Re: Question about OTG operations
> 
> On Tuesday 28 February 2006 7:44 pm, Li Yang-r58472 wrote:
> > Thanks Dave,
> >
> > So the current application of HNP is only to correct wrongly connected 
> > cable?
> 
> That's not what I said, but it _is_ the only scenario that's completely
> spelled out in the specs.
> 
> Once HNP is enabled, if the host side interface driver(s) do stuff that
> causes device suspend, HNP will kick in.  At this time, those Linux
> device drivers don't do that.  It can be done from userspace using some
> power management primitives in sysfs; and custom drivers could do it,
> even though standard ones won't.  So if you have OTG system design that
> wants to use HNP for more than that, you should already be set.
> 
> Remember also that connecting two HNP-capable devices is going to be
> rare for some time ... and that's the only case where HNP applies.
> Billions of standard USB hosts and peripherals will never talk HNP.
> 
> 
> > 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.
> 
> I think you mis-read both OTG and USB.  There's still only one master at a
> time; HNP (and ID-pin sensing in Mini-AB sockets) means that devices don't
> need to be designed any more to serve just one role.
> 
> I think end users will find that cable based role switching to be far more
> immediately useful.  Smart gadgets will be able to talk to PCs, and also get
> much expansion capability for things like printers, standard keyboards, and
> expansion storage.  The aftermarket for those fancy gadgets _could_ be pretty
> open, and from the end-user perspective that'd be a very nice thing.  (Folk
> profiting from small/closed aftermarkets may disagree though...)
> 
> 
> As for peer-to-peer ... I've heard that said, but I don't buy it.  It's not
> true at the hardware level, and at the software level there's never been a
> reason for application protocols to avoid peer-to-peer models.  Here's one
> simple counter-example:  since you can run peer-to-peer over TCP/IP stacks,
> and you can run TCP/IP over USB (in many ways), then clearly USB already
> supports peer-to-peer application models as well as, say, Ethernet.
> 
You are right.  It helps me understanding.
> 
> 
> > 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?
> 
> What, you mean "we, Freescale"?  Start by providing Linux support, and then
> make it easy to productize Linux-based OTG systems.  There's a technology
> issue there of course; and from a marketing perspective, feel free to push
> money into the hands of folk who will be doing that productization.  :)
I mean contributors to open source.  :P  
I'm not a marketing guy.  But as far as I know most companies like to think in 
a different way.   They look at the features Linux already have.  If Linux meet 
their expectation they choose Linux.  Otherwise they develop their own system 
or buy commercial solutions.  I do hope Linux can have a better business model 
to make money (of coz making contributors' life much easier).  :)
> 
> My theory is that a critical mass of understanding hasn't yet developed among
> the folk who build such products.  Many embedded environments only cover the
> peripheral role of USB (such as, last I looked, Symbian) and not the host 
> role;
> that's a MAJOR difference in terms of user interfacing and end-user scenarios.
> (Linux has some of the converse problem.)
> 
> That critical mass will develop once OTG-capable development platforms become
> more widely available.  The effort to prototype OTG products will go down, and
> then OTG-based product concepts will naturally start to surface.  Some will
> even
> be good enough to catch on.  And then Fry's will finally have a reason to 
> stock
> OTG cables!
Yup.  If there are some ready (or almost ready) solutions around, it will be 
easier for device makers to choose OTG.
>

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