From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel.lezcano@linaro.org (Daniel Lezcano) Date: Tue, 04 Jun 2013 13:58:31 +0200 Subject: [PATCH] ARM: zynq: wfi exit on same cpu is valid In-Reply-To: References: <1369997066-10585-1-git-send-email-sanjay.rawat@linaro.org> <51AC5060.80806@linaro.org> <51AC672A.5050501@monstr.eu> <51AC8F74.2060302@linaro.org> Message-ID: <51ADD667.3010203@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 06/04/2013 01:39 PM, Amit Kucheria wrote: > On Mon, Jun 3, 2013 at 6:13 PM, Daniel Lezcano > wrote: >> On 06/03/2013 11:51 AM, Michal Simek wrote: >>> Hi, >>> >>> On 06/03/2013 10:14 AM, Daniel Lezcano wrote: >>>> On 05/31/2013 12:44 PM, Sanjay Singh Rawat wrote: >>>>> The current code considers every wakeup as spurious, which is not >>>>> correct. Handle the same way as other arm platforms are doing. >>>>> >>>>> Signed-off-by: Sanjay Singh Rawat >>>> Reviewed-by: Daniel Lezcano >>>> >>>> >>>>> --- >>>>> arch/arm/mach-zynq/hotplug.c | 7 +++++++ >>>>> 1 file changed, 7 insertions(+) >>>>> >>>>> diff --git a/arch/arm/mach-zynq/hotplug.c b/arch/arm/mach-zynq/hotplug.c >>>>> index c89672b..a1ab22c 100644 >>>>> --- a/arch/arm/mach-zynq/hotplug.c >>>>> +++ b/arch/arm/mach-zynq/hotplug.c >>>>> @@ -67,6 +67,13 @@ static inline void zynq_platform_do_lowpower(unsigned int cpu, int *spurious) >>>>> dsb(); >>>>> wfi(); >>>>> >>>>> + if (pen_release == cpu_logical_map(cpu)) { >>>>> + /* >>>>> + * OK, proper wakeup, we're done >>>>> + */ >>>>> + break; >>>>> + } >>>>> + >>> what pen_release stands for? >>> I have looked at it and others platform are also using it in platsmp >>> code which is not zynq case. >>> How is it supposed to work and how this variable should be used? >> >> This variable is used to serialize the secondary cpus boot process. > > I'm curious why it is called pen_release. :) Is there some historical > link to some HW lines? I tried to figure out the same but I did not found any information on that. I assumed the name could be referring to a simplified mutual exclusion algorithm from the 'Dining philosophers problem' [1] where the fork is a pen. But maybe I am totally wrong :) [1] http://en.wikipedia.org/wiki/Dining_philosophers_problem -- Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog