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 <ba...@ti.com>
> >---
> >  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

Reply via email to