On Mon, Feb 11, 2013 at 04:32:10PM +0530, kishon wrote: > Hi, > > On Monday 11 February 2013 03:22 PM, Felipe Balbi wrote: > >this patch implements basic suspend/resume > >functionality for the OMAP glue layer. > > > >Signed-off-by: Felipe Balbi <balbi@xxxxxx> > >--- > > drivers/usb/dwc3/dwc3-omap.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 56 insertions(+) > > > >diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c > >index 3214236..422bfed 100644 > >--- a/drivers/usb/dwc3/dwc3-omap.c > >+++ b/drivers/usb/dwc3/dwc3-omap.c > >@@ -141,6 +141,8 @@ struct dwc3_omap { > > int irq; > > void __iomem *base; > > > >+ u32 utmi_otg_status; > >+ > > u32 dma_status:1; > > }; > > > >@@ -444,12 +446,66 @@ static const struct of_device_id of_dwc3_match[] = { > > }; > > MODULE_DEVICE_TABLE(of, of_dwc3_match); > > > >+#ifdef CONFIG_PM > >+static int dwc3_omap_prepare(struct device *dev) > >+{ > >+ struct dwc3_omap *omap = dev_get_drvdata(dev); > >+ > >+ dwc3_omap_disable_irqs(omap); > > Any reason for disabling irqs in *prepare* instead of *suspend*? From > whatever I could make out from *include/linux/pm.h*, "prepare" should > be used to prevent new calls to the probe method from being made too > oncece @prepare() has succeeded. well, it helps at least with the possibility of us ever implementing e.g. freeze and suspend differently. Because ->prepare() will always run, we mask the IRQs early enough and don't need to sprinkle disable_irqs() in many places. -- balbi
Attachment:
signature.asc
Description: Digital signature