public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
To: ext Ajay Kumar Gupta <ajay.gupta-l0cyMroinI0@public.gmane.org>
Cc: "linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Balbi Felipe (Nokia-D/Helsinki)"
	<felipe.balbi-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>,
	"david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org"
	<david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>,
	Anand Gadiyar <gadiyar-l0cyMroinI0@public.gmane.org>
Subject: Re: [PATCH 2/3 v3] musb: Add context save and restore support
Date: Mon, 14 Dec 2009 18:33:24 +0200	[thread overview]
Message-ID: <20091214163324.GB31829@nokia.com> (raw)
In-Reply-To: <1260797982-28880-2-git-send-email-ajay.gupta-l0cyMroinI0@public.gmane.org>

Hi,

On Mon, Dec 14, 2009 at 02:39:41PM +0100, ext Ajay Kumar Gupta wrote:
>+void musb_restore_context(struct musb *musb)
>+{
>+       int i;
>+       void __iomem *musb_base = musb->mregs;
>+       void __iomem *ep_target_regs;
>+
>+       musb_platform_restore_context(&musb_context);
>+
>+       if (is_host_enabled(musb)) {
>+               musb_writew(musb_base, MUSB_FRAME, musb_context.frame);
>+               musb_writeb(musb_base, MUSB_TESTMODE, musb_context.testmode);
>+       }
>+       musb_writeb(musb_base, MUSB_POWER, musb_context.power);
>+       musb_writew(musb_base, MUSB_INTRTXE, musb_context.intrtxe);
>+       musb_writew(musb_base, MUSB_INTRRXE, musb_context.intrrxe);
>+       musb_writeb(musb_base, MUSB_INTRUSBE, musb_context.intrusbe);
>+       musb_writeb(musb_base, MUSB_DEVCTL, musb_context.devctl);
>+
>+       for (i = 0; i < MUSB_C_NUM_EPS; ++i) {
>+               musb_writeb(musb_base, MUSB_INDEX, i);
>+               musb_writew(musb_base, 0x10 + MUSB_TXMAXP,
>+                       musb_context.index_regs[i].txmaxp);
>+               musb_writew(musb_base, 0x10 + MUSB_TXCSR,
>+                       musb_context.index_regs[i].txcsr);
>+               musb_writew(musb_base, 0x10 + MUSB_RXMAXP,
>+                       musb_context.index_regs[i].rxmaxp);
>+               musb_writew(musb_base, 0x10 + MUSB_RXCSR,
>+                       musb_context.index_regs[i].rxcsr);
>+
>+               if (musb->dyn_fifo) {

if (musb->config->dyn_fifo)

>@@ -2179,15 +2322,23 @@ static int musb_suspend(struct device *dev)
>        spin_lock_irqsave(&musb->lock, flags);
>
>        if (is_peripheral_active(musb)) {
>-               /* FIXME force disconnect unless we know USB will wake
>-                * the system up quickly enough to respond ...
>+               /* System is entering into suspend where gadget would not be
>+                * able to respond to host and thus it will be in an unknown
>+                * state for host. Re-enumeration of gadget is required after
>+                * a resume. So we force a disconnect.
>                 */
>+               reg = musb_readb(musb->mregs, MUSB_POWER);
>+               reg &= ~MUSB_POWER_SOFTCONN;
>+               musb_writeb(musb->mregs, MUSB_POWER, reg);
>+

I think we should only allow suspend if cable isn't connected. What 
would happend if you have mounted fs (using mass storage), user is 
transferring files and you force a disconnect ?

>diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
>index 83beeac..15a3f27 100644
>--- a/drivers/usb/musb/omap2430.c
>+++ b/drivers/usb/musb/omap2430.c
>@@ -255,6 +255,22 @@ int __init musb_platform_init(struct musb *musb)
>        return 0;
> }
>
>+#ifdef CONFIG_PM
>+void musb_platform_save_context(struct musb_context_registers
>+               *musb_context)
>+{
>+       musb_context->otg_sysconfig = omap_readl(OTG_SYSCONFIG);
>+       musb_context->otg_forcestandby = omap_readl(OTG_FORCESTDBY);
>+}
>+
>+void musb_platform_restore_context(struct musb_context_registers
>+               *musb_context)

waaay too many exported functions already. Let's add some structure to 
pass functions pointers. I'll cook a patch adding suspend(), resume(), 
init() and friends and send tomorrow.

Then your patch would add save_context() and restore_context().

-- 
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2009-12-14 16:33 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-14 13:39 [PATCH 1/3] musb: save dynfifo in musb struct Ajay Kumar Gupta
     [not found] ` <1260797982-28880-1-git-send-email-ajay.gupta-l0cyMroinI0@public.gmane.org>
2009-12-14 13:39   ` [PATCH 2/3 v3] musb: Add context save and restore support Ajay Kumar Gupta
2009-12-14 13:39     ` [PATCH 3/3] musb: Add 'extvbus' in musb_hdrc_platform_data Ajay Kumar Gupta
2009-12-14 16:37       ` Felipe Balbi
     [not found]         ` <20091214163746.GC31829-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-15  4:07           ` Gupta, Ajay Kumar
     [not found]     ` <1260797982-28880-2-git-send-email-ajay.gupta-l0cyMroinI0@public.gmane.org>
2009-12-14 16:33       ` Felipe Balbi [this message]
2009-12-14 16:39         ` [PATCH 2/3 v3] musb: Add context save and restore support Felipe Balbi
     [not found]         ` <20091214163324.GB31829-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-15 11:44           ` Gupta, Ajay Kumar
     [not found]             ` <19F8576C6E063C45BE387C64729E739404372AAF0F-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-15 12:04               ` Gadiyar, Anand
     [not found]                 ` <5A47E75E594F054BAF48C5E4FC4B92AB030ADD53A6-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-15 12:10                   ` Felipe Balbi
     [not found]                     ` <20091215121032.GH3689-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-15 12:36                       ` Gupta, Ajay Kumar
     [not found]                         ` <19F8576C6E063C45BE387C64729E739404372AAF44-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-15 12:39                           ` Gupta, Ajay Kumar
2009-12-15 12:48                           ` Felipe Balbi
2009-12-17 13:38       ` Arnaud Mandy
2009-12-17 13:51         ` Gupta, Ajay Kumar
     [not found]           ` <19F8576C6E063C45BE387C64729E73940449F439C7-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-17 14:10             ` Arnaud Mandy
     [not found]               ` <4B2A3BEE.7000809-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-17 14:16                 ` Gupta, Ajay Kumar
     [not found]                   ` <19F8576C6E063C45BE387C64729E73940449F439D9-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-17 15:17                     ` Arnaud Mandy
     [not found]                       ` <4B2A4BA6.9010804-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-18  4:17                         ` Gupta, Ajay Kumar
2009-12-14 16:24   ` [PATCH 1/3] musb: save dynfifo in musb struct Felipe Balbi
2009-12-15  4:04     ` Gupta, Ajay Kumar
     [not found]       ` <19F8576C6E063C45BE387C64729E739404372AAD03-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-15  7:26         ` Felipe Balbi
2009-12-15  7:37           ` Gupta, Ajay Kumar
     [not found]             ` <19F8576C6E063C45BE387C64729E739404372AAE01-/tLxBxkBPtCIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-12-15  7:40               ` Felipe Balbi
     [not found]                 ` <20091215074025.GB3147-xNZwKgViW5gAvxtiuMwx3w@public.gmane.org>
2009-12-15  7:44                   ` Gupta, Ajay Kumar
2009-12-15  8:32                     ` Felipe Balbi

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=20091214163324.GB31829@nokia.com \
    --to=felipe.balbi-xnzwkgviw5gavxtiumwx3w@public.gmane.org \
    --cc=ajay.gupta-l0cyMroinI0@public.gmane.org \
    --cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
    --cc=gadiyar-l0cyMroinI0@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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