All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bin Liu <b-liu@ti.com>
To: Tony Lindgren <tony@atomide.com>,
	Moreno Bartalucci <moreno.bartalucci@tecnorama.it>,
	Lars Melin <larsm17@gmail.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Alessio Igor Bogani <abogani@kernel.org>
Subject: Re: [PATCH] usb-musb: keep VBUS on when device is disconnected
Date: Thu, 11 May 2017 14:20:13 -0500	[thread overview]
Message-ID: <20170511192013.GA4459@uda0271908> (raw)
In-Reply-To: <20170511191005.GG7154@uda0271908>

On Thu, May 11, 2017 at 02:10:05PM -0500, Bin Liu wrote:
[...]
> > > > The otg state machine implementation in the musb drivers are kind of strange.
> > > > OTG_STATE_A_WAIT_BCON suppose to be a steady state when no usb device is
> > > > attached, but the musb drivers use it as a transient state to handle error
> > > > cases, such as overcurrent ot HNP timeout, which is done in the 'case
> > > > OTG_STATE_A_WAIT_BCON' branch in otg_timer() (or dsps_check_status() for dsps
> > > > glue).
> > > > 
> > > > Then later when 2f3fd2c5bde1 adds
> > > > 
> > > > -       /* Poll for ID change in OTG port mode */
> > > > -       if (musb->xceiv->otg->state == OTG_STATE_B_IDLE &&
> > > > -                       musb->port_mode == MUSB_PORT_MODE_DUAL_ROLE)
> > > > +       /* Poll for ID change and connect */
> > > > +       switch (musb->xceiv->otg->state) {
> > > > +       case OTG_STATE_B_IDLE:
> > > > +       case OTG_STATE_A_WAIT_BCON:
> > > >                 mod_timer(&glue->timer, jiffies +
> > > >                                 msecs_to_jiffies(wrp->poll_timeout));
> > > > +               break;
> > > > 
> > > > which causes dsps_check_status (or otg_timer()) got called for a normal
> > > > condition with OTG_STATE_A_WAIT_BCON, then turns off VBUS...
> > > > 
> > > > Will try to see how to solve this...
> > > 
> > > Maybe we just need to add back the earlier check for non-OTG devices
> > > "musb->port_mode == MUSB_PORT_MODE_DUAL_ROLE" into case
> > > OTG_STATE_A_WAIT_BCON?
> > 
> > Not sure if it will work. The check is to kick out device-only mode.
> > DUAL_ROLE means both OTG and host-only.
> > 
> > > 
> > > Not sure if am335x configured with host port ever idle that way,
> > > but maybe VBUS can be kept on with musb idle.
> > 
> > Just tried to remove 
> > 
> > +       case OTG_STATE_A_WAIT_BCON:
> > 
> > for the polling, but the port stops detecting device attach, musb
> > power/devctl registers are good, trying to see why... maybe related to
> > PM state?
> 
> usb_otg_hs is idle, so not able to detect attach. So need to get the
> timer rolling in here to make it detect working.
> Maybe need to add a flag in dsps_check_status() to not turn off vbus in
> this case? Really don't like the idea...

Tony,

I am not sure I gave out the picture clearly.

Before added the runtime PM support, in host mode (devctl=0x19) the
otg_timer is stopped, the controller is ready to detect attach.

Later when added the runtime PM support, usb_otg_hs hwmod becomes idle
when a device is detached, so the otg_timer is needed to keep hwmod
enable/idle periodically to detect attach, which triggers the issue
because otg_timer() turns off vbus unconditionally when otg state is
OTG_STATE_A_WAIT_BCON.

Regards,
-Bin.

  reply	other threads:[~2017-05-11 19:20 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-15 14:08 [PATCH] usb-musb: keep VBUS on when device is disconnected Moreno Bartalucci
2017-03-15 14:08 ` Moreno Bartalucci
2017-03-24 18:58 ` Bin Liu
2017-03-24 18:58   ` Bin Liu
2017-03-25  7:21   ` Lars Melin
2017-03-27 12:53     ` Moreno Bartalucci
2017-03-27 12:53       ` Moreno Bartalucci
2017-03-27 13:17       ` Bin Liu
2017-03-27 13:17         ` Bin Liu
2017-03-27 14:30         ` Tony Lindgren
2017-03-27 16:20           ` Moreno Bartalucci
2017-03-27 16:59             ` Tony Lindgren
2017-03-27 16:59               ` Tony Lindgren
2017-03-27 17:15               ` Bin Liu
2017-03-27 17:55                 ` Tony Lindgren
2017-03-27 17:55                   ` Tony Lindgren
2017-05-11 18:50                   ` Bin Liu
2017-05-11 18:55                     ` Tony Lindgren
2017-05-11 19:01                       ` Bin Liu
2017-05-11 19:10                         ` Bin Liu
2017-05-11 19:20                           ` Bin Liu [this message]
2017-05-11 19:38                             ` Tony Lindgren
2017-05-11 20:02                               ` Bin Liu
2017-05-11 20:23                                 ` Tony Lindgren
2017-05-11 20:27                                   ` Tony Lindgren
2017-05-11 20:44                                   ` Bin Liu
2017-05-11 21:06                                     ` Tony Lindgren
2017-05-12 13:40                                       ` Bin Liu
2017-05-12 14:58                                         ` Tony Lindgren
2017-05-12 15:21                                           ` Bin Liu
2017-05-12 15:43                                             ` Moreno Bartalucci
2017-05-12 17:21                                             ` Tony Lindgren
2017-05-12 17:40                                               ` Bin Liu
2017-05-12 17:46                                                 ` Tony Lindgren
2017-05-15  7:07                                             ` Moreno Bartalucci
2017-05-15 12:24                                               ` Bin Liu
2017-03-28  6:10                 ` Moreno Bartalucci
2017-03-28  6:10                   ` Moreno Bartalucci
2017-03-28 14:59                   ` Tony Lindgren
2017-03-28 14:59                     ` Tony Lindgren

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=20170511192013.GA4459@uda0271908 \
    --to=b-liu@ti.com \
    --cc=abogani@kernel.org \
    --cc=larsm17@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=moreno.bartalucci@tecnorama.it \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.