Hi Santosh, Thanks for looking at this series.
On Fri, Jul 08, 2011 at 02:45:43AM +0100, Santosh Shilimkar wrote: > On 7/7/2011 8:50 AM, Lorenzo Pieralisi wrote: > > In order to define a common idle interface for the kernel > > to enter low power modes, this patch provides include files > > and code that manages OS calls for low power entry and exit. > > > > [....] > > > diff --git a/arch/arm/kernel/sr_entry.S b/arch/arm/kernel/sr_entry.S > > new file mode 100644 > > index 0000000..4fa9bef > > --- /dev/null > > +++ b/arch/arm/kernel/sr_entry.S > > @@ -0,0 +1,213 @@ > > +/* > > + * Copyright (c) 2008-2011 ARM Ltd > > + * > > + * Author(s): Jon Callan, Lorenzo Pieralisi > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + * > > + */ > > + > > +#include<linux/linkage.h> > > +#include<generated/asm-offsets.h> > > +#include<asm/thread_info.h> > > +#include<asm/memory.h> > > +#include<asm/ptrace.h> > > +#include<asm/glue-proc.h> > > +#include<asm/assembler.h> > > +#include<asm-generic/errno-base.h> > > +#include<mach/entry-macro.S> > > + > > + .text > > + > > +ENTRY(default_sleep) > > + b out @ BTAC allocates branch and enters loop mode > > +idle: @ power down is entered with GIC CPU IF still > > on which > > + dsb @ might get wfi instruction to complete before the > > + wfi @ CPU is shut down -- infinite loop > > +out: > > + b idle > > +ENDPROC(default_sleep) > > Q: What happens for some reason CPU didn't hit targeted > state in IDLE. Does CPU keep looping here forever. > > On OMAP4, we need to issue additional interconnect > barrier before WFI. How can we make provision for the same > That's why I added a function pointer, (*sr_sleep) as a way to override the default loop behaviour which is there to prevent the cpu to exit wfi after a point of no return (GIC CPU IF is still on). It is just a tentative solution, so please feel free to comment on this. If you pop out from (*sr_sleep) the current code jumps through cpu_reset and emulates a reset, which may not be optimal. You might also want to execute from SRAM. I have to cater for that. Again, comments more than welcome. Lorenzo _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev