From: Daniel Mack <zonque@gmail.com>
To: balbi@ti.com
Cc: bigeasy@linutronix.de, linux-usb@vger.kernel.org,
linux-omap@vger.kernel.org, neumann@teufel.de,
Greg KH <gregkh@linuxfoundation.org>,
Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [PATCH 2/5] usb: musb: call musb_port_suspend from musb_bus_suspend
Date: Mon, 25 Nov 2013 21:21:24 +0100 [thread overview]
Message-ID: <5293B144.10006@gmail.com> (raw)
In-Reply-To: <20131125200121.GE18046@saruman.home>
On 11/25/2013 09:01 PM, Felipe Balbi wrote:
> Hi,
>
> On Mon, Nov 25, 2013 at 08:58:22PM +0100, Daniel Mack wrote:
>> On 11/25/2013 08:46 PM, Felipe Balbi wrote:
>>> On Mon, Nov 25, 2013 at 08:39:50PM +0100, Daniel Mack wrote:
>>>> Make musb_port_suspend() externally available, and call it when to host
>>>> goes into suspend. This allows the core to go into suspend while a
>>>> device is connected.
>>>>
>>>> Signed-off-by: Daniel Mack <zonque@gmail.com>
>>>> ---
>>>> drivers/usb/musb/musb_host.c | 2 ++
>>>> drivers/usb/musb/musb_host.h | 2 ++
>>>> drivers/usb/musb/musb_virthub.c | 2 +-
>>>> 3 files changed, 5 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
>>>> index 6582a20..81caf9f 100644
>>>> --- a/drivers/usb/musb/musb_host.c
>>>> +++ b/drivers/usb/musb/musb_host.c
>>>> @@ -2433,6 +2433,8 @@ static int musb_bus_suspend(struct usb_hcd *hcd)
>>>> struct musb *musb = hcd_to_musb(hcd);
>>>> u8 devctl;
>>>>
>>>> + musb_port_suspend(musb, true);
>>>
>>> have you considered the fact that when musb looses context it'll cause a
>>> disconnect on the bus because soft_connect bit is lost ?
>>>
>>> What if you have a mounted file system on a pendrive ? Should we allow
>>> suspend in that case ?
>>
>> Well, I would have expected that, but in fact, the opposite is true.
>> With 3.12, mounting a filesystem on a USB media and accessing it after
>> resume was exactly my test case, and it worked just fine with that patch.
>
> so you had a mounted file system, suspend, resume, it was still mounted?
Yes, exactly.
> or did it reenumerate and you remounted it ?
No, it did not reenumerate, but the core did a reset on it. See the
following log.
# mount /dev/sda /mnt
# md5sum /mnt/sine_left.wav
bcd90548c1ebf293289072f1a6161f0f /mnt/sine_left.wav
#
#
# echo mem > /sys/power/state
[ 31.553425] PM: Syncing filesystems ... done.
[ 31.575462] Freezing user space processes ... (elapsed 0.002 seconds)
done.
[ 31.585275] Freezing remaining freezable tasks ... (elapsed 0.002
seconds) done.
[ 31.595953] PM: Sending message for entering DeepSleep mode
[ 31.628887] PM: suspend of devices complete after 21.097 msecs
[ 31.641082] PM: late suspend of devices complete after 5.906 msecs
[ 31.653834] PM: noirq suspend of devices complete after 6.135 msecs
[ 31.660558] PM: GFX domain entered low power state
[ 31.660558] PM: Successfully put all powerdomains to target state
[ 31.660558] PM: Wakeup source GPIO0
[ 31.679130] PM: noirq resume of devices complete after 17.941 msecs
[ 31.693371] PM: early resume of devices complete after 4.388 msecs
[ 31.702750] net eth0: initializing cpsw version 1.12 (0)
[ 31.712084] net eth0: phy found : id is : 0x4dd076
[ 31.717317] libphy: PHY not found
[ 31.722448] net eth0: phy not found on slave 1
[ 32.030792] usb 1-1: reset high-speed USB device number 2 using
musb-hdrc <<<< !
[ 32.395192] PM: resume of devices complete after 695.279 msecs
[ 32.407816] PM: Sending message for resetting M3 state machine
[ 32.414683] Restarting tasks ... done.
[ 36.701568] libphy: 4a101000.mdio:04 - Link is Up - 100/Full
#
#
# md5sum /mnt/sine_left.wav
bcd90548c1ebf293289072f1a6161f0f /mnt/sine_left.wav
> Try to do the same with transfers in flight, it's likely to corrupt your
> file system.
I did that as well, and it appeared stable to me. After all, the USB
device was properly put into suspend before VBUS went away, and the usb
storage driver caught up after the core's reset.
In my tests, this was the only approach that would work after resume.
Daniel
next prev parent reply other threads:[~2013-11-25 20:21 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-25 19:39 [PATCH 0/5] musb/dsps: suspend related patches for 3.14 (rebased) Daniel Mack
2013-11-25 19:39 ` [PATCH 1/5] usb: musb: conditionally save and restore the context on suspend Daniel Mack
2013-11-25 19:44 ` Felipe Balbi
2013-11-25 20:08 ` Daniel Mack
2013-11-25 20:13 ` Felipe Balbi
[not found] ` <20131125201339.GH18046-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2013-11-25 20:27 ` Daniel Mack
2013-11-26 10:50 ` Sergei Shtylyov
2013-11-26 10:58 ` Daniel Mack
2013-11-25 19:39 ` [PATCH 2/5] usb: musb: call musb_port_suspend from musb_bus_suspend Daniel Mack
[not found] ` <1385408393-19707-3-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 19:46 ` Felipe Balbi
[not found] ` <20131125194629.GA18046-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2013-11-25 19:58 ` Daniel Mack
2013-11-25 20:01 ` Felipe Balbi
2013-11-25 20:21 ` Daniel Mack [this message]
[not found] ` <5293B144.10006-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 20:41 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1311251534260.1172-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2013-11-25 20:44 ` Daniel Mack
2013-11-25 20:45 ` Felipe Balbi
[not found] ` <20131125200121.GE18046-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2013-11-25 20:47 ` Daniel Mack
[not found] ` <5293B754.9050406-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 20:49 ` Felipe Balbi
2013-11-25 20:34 ` Alan Stern
[not found] ` <1385408393-19707-1-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 19:39 ` [PATCH 3/5] usb: musb: dsps: add {tx,rx}_mode to wrapper Daniel Mack
2013-11-25 19:39 ` [PATCH 4/5] usb: musb: dsps: add support for suspend and resume Daniel Mack
[not found] ` <1385408393-19707-5-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 19:48 ` Felipe Balbi
2013-11-25 20:04 ` Daniel Mack
[not found] ` <5293AD40.6060607-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 20:08 ` Felipe Balbi
2013-11-25 20:26 ` Daniel Mack
2013-11-25 20:46 ` Felipe Balbi
2013-11-25 20:54 ` Daniel Mack
2013-11-25 20:55 ` Felipe Balbi
2013-11-25 19:39 ` [PATCH 5/5] usb: musb: dsps: indentation and whitespace fixes Daniel Mack
[not found] ` <1385408393-19707-6-git-send-email-zonque-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-11-25 19:49 ` Felipe Balbi
2013-11-25 19:59 ` Daniel Mack
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=5293B144.10006@gmail.com \
--to=zonque@gmail.com \
--cc=balbi@ti.com \
--cc=bigeasy@linutronix.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=neumann@teufel.de \
--cc=stern@rowland.harvard.edu \
/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;
as well as URLs for NNTP newsgroup(s).