diff options
author | Iliyan Malchev <malchev@google.com> | 2011-09-06 22:06:04 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-06 22:06:04 -0700 |
commit | f0684621648fc997915507188ce512a445a9bab1 (patch) | |
tree | e3fa78fd3f9a1f6b085ba6e5774c69947e238dcb /drivers/usb | |
parent | e16ec00c7a8db14c665cac8417d17d2232e62f1e (diff) | |
parent | f7dfd268d6c63662c222d226b835b8f273f9daab (diff) | |
download | kernel_samsung_tuna-f0684621648fc997915507188ce512a445a9bab1.zip kernel_samsung_tuna-f0684621648fc997915507188ce512a445a9bab1.tar.gz kernel_samsung_tuna-f0684621648fc997915507188ce512a445a9bab1.tar.bz2 |
Merge branch 'linux-omap-3.0' into android-omap-3.0
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/musb/musb_core.c | 2 | ||||
-rw-r--r-- | drivers/usb/musb/musb_core.h | 1 | ||||
-rw-r--r-- | drivers/usb/musb/omap2430.c | 6 |
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index c5c608b..e2648ff 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -2214,6 +2214,7 @@ static void musb_save_context(struct musb *musb) musb->context.devctl = musb_readb(musb_base, MUSB_DEVCTL); for (i = 0; i < musb->config->num_eps; ++i) { + musb_writeb(musb_base, MUSB_INDEX, i); epio = musb->endpoints[i].regs; musb->context.index_regs[i].txmaxp = musb_readw(epio, MUSB_TXMAXP); @@ -2280,6 +2281,7 @@ static void musb_restore_context(struct musb *musb) musb_writeb(musb_base, MUSB_DEVCTL, musb->context.devctl); for (i = 0; i < musb->config->num_eps; ++i) { + musb_writeb(musb_base, MUSB_INDEX, i); epio = musb->endpoints[i].regs; musb_writew(epio, MUSB_TXMAXP, musb->context.index_regs[i].txmaxp); diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h index 40a6ceb..61fb046 100644 --- a/drivers/usb/musb/musb_core.h +++ b/drivers/usb/musb/musb_core.h @@ -370,6 +370,7 @@ struct musb_context_registers { u8 index, testmode; u8 devctl, busctl, misc; + u32 otg_interfsel; struct musb_csr_regs index_regs[MUSB_C_NUM_EPS]; }; diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index 9baec29..58e29c6 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c @@ -528,6 +528,9 @@ static int omap2430_runtime_suspend(struct device *dev) struct omap2430_glue *glue = dev_get_drvdata(dev); struct musb *musb = glue_to_musb(glue); + musb->context.otg_interfsel = musb_readl(musb->mregs, + OTG_INTERFSEL); + omap2430_low_level_exit(musb); otg_set_suspend(musb->xceiv, 1); @@ -540,6 +543,9 @@ static int omap2430_runtime_resume(struct device *dev) struct musb *musb = glue_to_musb(glue); omap2430_low_level_init(musb); + musb_writel(musb->mregs, OTG_INTERFSEL, + musb->context.otg_interfsel); + otg_set_suspend(musb->xceiv, 0); return 0; |