Hi, On Fri, Jul 22, 2011 at 12:55:53AM -0500, Nishanth Menon wrote: > Suspend and Resume paths are safe enough to do it in > the standard LDM suspend/resume handlers where one can > sleep. Add suspend/resume handlers for SmartReflex. > > Signed-off-by: Nishanth Menon <nm@xxxxxx> > --- > arch/arm/mach-omap2/smartreflex.c | 87 +++++++++++++++++++++++++++++++++++++ > 1 files changed, 87 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c > index 33a027f..fb90bd2 100644 > --- a/arch/arm/mach-omap2/smartreflex.c > +++ b/arch/arm/mach-omap2/smartreflex.c > @@ -39,6 +39,7 @@ struct omap_sr { > int ip_type; > int nvalue_count; > bool autocomp_active; > + bool is_suspended; > u32 clk_length; > u32 err_weight; > u32 err_minlimit; > @@ -684,6 +685,12 @@ void omap_sr_enable(struct voltagedomain *voltdm) > if (!sr->autocomp_active) > return; > > + if (sr->is_suspended) { > + dev_dbg(&sr->pdev->dev, "%s: in suspended state\n", __func__); > + return; > + } I wonder why you get these called if you're in suspend state. If this is called by some other driver, then shouldn't you pm_runtime_get_sync(); do_whatever_you_need_to_do(); and pm_runtime_put(); rather then just returning ? -- balbi
Attachment:
signature.asc
Description: Digital signature