On Thu, Sep 27, 2012 at 12:18 AM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote: > On 09/26/12 09:58, Pankaj Jangra wrote: >> On Fri, Sep 21, 2012 at 7:56 AM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote: >>> diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c >>> index 9f5fc90..2ae0639 100644 >>> --- a/drivers/usb/otg/msm_otg.c >>> +++ b/drivers/usb/otg/msm_otg.c >>> @@ -514,13 +514,13 @@ static int msm_otg_suspend(struct msm_otg *motg) >>> motg->pdata->otg_control == OTG_PMIC_CONTROL) >>> writel(readl(USB_PHY_CTRL) | PHY_RETEN, USB_PHY_CTRL); >>> >>> - clk_disable(motg->pclk); >>> - clk_disable(motg->clk); >>> + clk_disable_unprepare(motg->pclk); >>> + clk_disable_unprepare(motg->clk); >>> if (motg->core_clk) >>> - clk_disable(motg->core_clk); >>> + clk_disable_unprepare(motg->core_clk); >>> >> I was under assumption that system suspend/resume might be called from >> the interrupt context. If that is case then its not appropriate to >> call clk_prepare/unprepare here right? or my understanding is not correct???? > > Well we call disable_irq() at the top of this suspend function so I > suspect your understanding is incorrect. disable_irq() can call > schedule(). There are also a bunch of regulator calls in > msm_hsusb_ldo_set_mode() that this suspend function calls (almost all > regulator calls grab a mutex). Ok, might be i am worng because in acpuclock driver of msm on codeaurora tree, i have seen in commit text saying that it can be called from suspend/resume in interrupt context . So i was assuming that. Any way thanks. -- Pankaj Jangra -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html