From: David Brownell <david-b@pacbell.net>
To: Tony Lindgren <tony@atomide.com>
Cc: linux-omap-open-source@linux.omap.com
Subject: Re: [PATCH] USB: Fix OTG HNP for hub.c
Date: Tue, 29 May 2007 14:11:01 -0700 [thread overview]
Message-ID: <200705291411.01343.david-b@pacbell.net> (raw)
In-Reply-To: <20070529203458.GB27603@atomide.com>
On Tuesday 29 May 2007, Tony Lindgren wrote:
> * Felipe Balbi <felipebalbi@users.sourceforge.net> [070529 12:25]:
> > Hi,
> >
> > On 5/29/07, David Brownell <david-b@pacbell.net> wrote:
> >> On Tuesday 29 May 2007, Felipe Balbi wrote:
> >> > From: Tony Lindgren <tony@atomide.com>
> >> >
> >> > This patch makes makes OTG Host Negotiation Protocol (HNP)
> >> > to behave.
> >>
> >> Not really. It makes it strongly *MIS* behave in fact,
> >> since it always kicks off HNP ... even when it should not
> >> do so, because the device is in the whitelist. (Called
> >> the "Targeted Peripherals List", TPL, in jargonese.)
> >>
> >> The two blocks of code are in the wrong order ...
>
> Hmm, are you sure about that? My patch is based on
> USB_TG_1-3.pdf and playing with usbcv13.exe and two N800s.
>
> I'm under the impression that if the peripheral supports HNP, the
> host must offer HNP at least once during the session.
See section 6.8.1.4 of the OTG 1.2 spec which says that the A-device
first sets up communication with the B-device, when it's on the TPL.
You might be thinking about the later part of 6.8.1.4 which says
that "before ending the session" the A-device gives the B-device
an opportunity to be the master. That may be a "new" requirement,
added by OTG 1.2 and not in OTG 1.0a. But in any case, that's
after having done normal "work" (if any).
The mechanism for that is to enter the A_SUSPEND state after
enabling HNP. Right now I'd expect autosuspend to make that
happen ... that's a new mechanism, we may need to re-evaluate
stting B_HNP_ENABLE that early.
> And as I understand, the whitelist is for peripherals the host
> supports, with HNP or no HNP.
Yes ... and see 6.8.1.4 too. Devices NOT on the whitelist get
the A_BUS_REQ = FALSE treatment, triggering HNP or disconnect.
But ones on the whitelist keep A_BUS_REQ = TRUE until they're
done getting work done.
> With my patch, we offer to do HNP right in the beginning of the
> session. Then the peripheral can use it or not use depending if
> HNP is enabled on peripheral.
There are two requirements. For HNP the only requirement is to
try it by the end of the session. But for devices that have not
been blacklisted, there's another requirement: first, set up
normal communication with that peripheral.
> >> A more limited patch would help. Specifically, just
> >> fixing whatever bug was seen in the original code,
> >> rather than abstracting it into a new subroutine and
> >> changing the logic while doing so.
>
> Dave, did you ever get HNP working with any device and test
> it with usbcv13.exe and OPT?
HNP was certainly working on H2 back around 2.6.10/11 using
the original OPT ... that's before usbcv13.exe or the very
latest (mucho expensivo, high speed capable) OPT hardware.
I believe the OMAP tree has code changes in isp1301_omap (from
TI) which allegedly made it work on H3, but broke it on H2.
(The OMAP1 OTG core changed a bit between OMAP 1611 and 1710.)
Those changes have not yet gone upstream, on the grounds that
they'd be a regression.
I may take that H2 out of storage and see how it behaves
on current kernels ... it's possible that usbcore changes
have broken that support.
- Dave
> > Tony do you have any comments?
> > Do you mind if I try to re-work you patch?
>
> Felipe I guess you're the only one with OPT right now, and that's
> really what we should use for doing the HNP. So go ahead!
>
> Regards,
>
> Tony
>
next prev parent reply other threads:[~2007-05-29 21:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-29 12:02 RFC PATCH Felipe Balbi
2007-05-29 12:02 ` [PATCH] USB: Disable file_storage USB_CONFIG_ATT_WAKEUP Felipe Balbi
2007-05-29 12:02 ` [PATCH] musb_hdrc: Implement workaround for tusb3.0 wbus bug rev2 Felipe Balbi
2007-05-29 12:02 ` [PATCH] musb_hdrc: Add SRP Interface and control it through sysfs Felipe Balbi
2007-05-29 12:02 ` [PATCH] Add Sysfs Interface to Control Vbus states Felipe Balbi
2007-05-29 12:02 ` [PATCH] Add more Test Modes Felipe Balbi
2007-05-29 12:02 ` [PATCH] musb_hdrc: Make HNP work Felipe Balbi
2007-05-29 12:02 ` [PATCH] USB: Fix OTG HNP for hub.c Felipe Balbi
2007-05-29 12:02 ` [PATCH] HSET tool for the MUSB Controler Felipe Balbi
2007-05-29 12:02 ` [PATCH] Leave GPIO[7:6] pullups enabled Felipe Balbi
[not found] ` <11804401803413-git-send-email-felipebalbi@users.sourceforge.net>
2007-05-29 12:02 ` [PATCH] Make SRP passes in all Electrical Tests Felipe Balbi
2007-05-29 14:39 ` Dirk Behme
2007-06-05 11:02 ` [PATCH] Leave GPIO[7:6] pullups enabled Tony Lindgren
2007-05-29 19:21 ` [PATCH] USB: Fix OTG HNP for hub.c David Brownell
2007-05-29 19:24 ` Felipe Balbi
2007-05-29 20:34 ` Tony Lindgren
2007-05-29 21:11 ` David Brownell [this message]
2007-05-29 21:26 ` Tony Lindgren
2007-05-29 17:16 ` [PATCH] Add more Test Modes David Brownell
2007-05-29 17:07 ` [PATCH] musb_hdrc: Add SRP Interface and control it through sysfs David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200705291411.01343.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-omap-open-source@linux.omap.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox