All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <t.figa@samsung.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>, kgene.kim@samsung.com
Cc: linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org,
	linaro-kernel@lists.linaro.org, b.zolnierkie@samsung.com,
	sachin.kamat@linaro.org, viresh.kumar@linaro.org,
	rjw@rjwysocki.net
Subject: Re: [PATCH V3 14/17] ARM: exynos: cpuidle: Move the boot vector in pm.c
Date: Wed, 09 Apr 2014 14:27:25 +0200	[thread overview]
Message-ID: <53453CAD.9050000@samsung.com> (raw)
In-Reply-To: <1396959579-18268-15-git-send-email-daniel.lezcano@linaro.org>

Hi Daniel,

On 08.04.2014 14:19, Daniel Lezcano wrote:
> As usual, move the boot vector setting in the pm.c file and use the cpu_pm
> notifier to set it up.
>
> Remove the unused headers.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> ---
>   arch/arm/mach-exynos/cpuidle.c |   23 -----------------------
>   arch/arm/mach-exynos/pm.c      |   15 +++++++++++++++
>   2 files changed, 15 insertions(+), 23 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
> index 44d169b..4b94181 100644
> --- a/arch/arm/mach-exynos/cpuidle.c
> +++ b/arch/arm/mach-exynos/cpuidle.c
> @@ -8,46 +8,23 @@
>    * published by the Free Software Foundation.
>   */
>
> -#include <linux/kernel.h>
> -#include <linux/init.h>
>   #include <linux/cpuidle.h>
>   #include <linux/cpu_pm.h>
> -#include <linux/io.h>
> -#include <linux/export.h>
> -#include <linux/time.h>
>   #include <linux/platform_device.h>
>
>   #include <asm/proc-fns.h>
>   #include <asm/suspend.h>
> -#include <asm/unified.h>
>   #include <asm/cpuidle.h>
>
>   #include <plat/cpu.h>
> -#include <plat/pm.h>
> -
> -#include <mach/map.h>
>
>   #include "common.h"
> -#include "regs-pmu.h"
> -
> -#define REG_DIRECTGO_ADDR	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
> -			S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> -			(S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
> -#define REG_DIRECTGO_FLAG	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
> -			S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> -			(S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
>
>   static int idle_finisher(unsigned long flags)
>   {
> -
> -	__raw_writel(virt_to_phys(s3c_cpu_resume), REG_DIRECTGO_ADDR);
> -	__raw_writel(S5P_CHECK_AFTR, REG_DIRECTGO_FLAG);
> -
>   	/* Set value of power down register for aftr mode */
>   	exynos_sys_powerdown_conf(SYS_AFTR);
> -
>   	cpu_do_idle();
> -
>   	return 1;
>   }
>
> diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
> index 90fb692..e4ecd8c 100644
> --- a/arch/arm/mach-exynos/pm.c
> +++ b/arch/arm/mach-exynos/pm.c
> @@ -172,6 +172,20 @@ static void __init exynos5_core_down_clk(void)
>   	__raw_writel(tmp, EXYNOS5_PWR_CTRL2);
>   }
>
> +#define EXYNOS_BOOT_VECTOR_ADDR (samsung_rev() == EXYNOS4210_REV_1_1 ? \
> +			S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> +			(S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
> +
> +#define EXYNOS_BOOT_VECTOR_FLAG (samsung_rev() == EXYNOS4210_REV_1_1 ? \
> +			S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> +			(S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
> +
> +static void exynos_cpu_set_boot_vector(void)
> +{
> +	__raw_writel(virt_to_phys(exynos_cpu_resume), EXYNOS_BOOT_VECTOR_ADDR);
> +	__raw_writel(S5P_CHECK_AFTR, EXYNOS_BOOT_VECTOR_FLAG);

S5P_CHECK_AFTR is a value specific for AFTR state. I wonder if it 
wouldn't be desired to let the cpuidle driver somehow affect the value 
written here.

> +}
> +
>   static int exynos_cpu_suspend(unsigned long arg)
>   {
>   #ifdef CONFIG_CACHE_L2X0
> @@ -387,6 +401,7 @@ static int exynos_cpu_pm_notifier(struct notifier_block *self,
>   			exynos_cpu_save_register();
>   			exynos_set_wakeupmask();
>   		}
> +		exynos_cpu_set_boot_vector();

Why this is outside of the if above? Should this really be called for 
all CPUs?

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: t.figa@samsung.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 14/17] ARM: exynos: cpuidle: Move the boot vector in pm.c
Date: Wed, 09 Apr 2014 14:27:25 +0200	[thread overview]
Message-ID: <53453CAD.9050000@samsung.com> (raw)
In-Reply-To: <1396959579-18268-15-git-send-email-daniel.lezcano@linaro.org>

Hi Daniel,

On 08.04.2014 14:19, Daniel Lezcano wrote:
> As usual, move the boot vector setting in the pm.c file and use the cpu_pm
> notifier to set it up.
>
> Remove the unused headers.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> ---
>   arch/arm/mach-exynos/cpuidle.c |   23 -----------------------
>   arch/arm/mach-exynos/pm.c      |   15 +++++++++++++++
>   2 files changed, 15 insertions(+), 23 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/cpuidle.c b/arch/arm/mach-exynos/cpuidle.c
> index 44d169b..4b94181 100644
> --- a/arch/arm/mach-exynos/cpuidle.c
> +++ b/arch/arm/mach-exynos/cpuidle.c
> @@ -8,46 +8,23 @@
>    * published by the Free Software Foundation.
>   */
>
> -#include <linux/kernel.h>
> -#include <linux/init.h>
>   #include <linux/cpuidle.h>
>   #include <linux/cpu_pm.h>
> -#include <linux/io.h>
> -#include <linux/export.h>
> -#include <linux/time.h>
>   #include <linux/platform_device.h>
>
>   #include <asm/proc-fns.h>
>   #include <asm/suspend.h>
> -#include <asm/unified.h>
>   #include <asm/cpuidle.h>
>
>   #include <plat/cpu.h>
> -#include <plat/pm.h>
> -
> -#include <mach/map.h>
>
>   #include "common.h"
> -#include "regs-pmu.h"
> -
> -#define REG_DIRECTGO_ADDR	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
> -			S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> -			(S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
> -#define REG_DIRECTGO_FLAG	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
> -			S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> -			(S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
>
>   static int idle_finisher(unsigned long flags)
>   {
> -
> -	__raw_writel(virt_to_phys(s3c_cpu_resume), REG_DIRECTGO_ADDR);
> -	__raw_writel(S5P_CHECK_AFTR, REG_DIRECTGO_FLAG);
> -
>   	/* Set value of power down register for aftr mode */
>   	exynos_sys_powerdown_conf(SYS_AFTR);
> -
>   	cpu_do_idle();
> -
>   	return 1;
>   }
>
> diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
> index 90fb692..e4ecd8c 100644
> --- a/arch/arm/mach-exynos/pm.c
> +++ b/arch/arm/mach-exynos/pm.c
> @@ -172,6 +172,20 @@ static void __init exynos5_core_down_clk(void)
>   	__raw_writel(tmp, EXYNOS5_PWR_CTRL2);
>   }
>
> +#define EXYNOS_BOOT_VECTOR_ADDR (samsung_rev() == EXYNOS4210_REV_1_1 ? \
> +			S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> +			(S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
> +
> +#define EXYNOS_BOOT_VECTOR_FLAG (samsung_rev() == EXYNOS4210_REV_1_1 ? \
> +			S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
> +			(S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
> +
> +static void exynos_cpu_set_boot_vector(void)
> +{
> +	__raw_writel(virt_to_phys(exynos_cpu_resume), EXYNOS_BOOT_VECTOR_ADDR);
> +	__raw_writel(S5P_CHECK_AFTR, EXYNOS_BOOT_VECTOR_FLAG);

S5P_CHECK_AFTR is a value specific for AFTR state. I wonder if it 
wouldn't be desired to let the cpuidle driver somehow affect the value 
written here.

> +}
> +
>   static int exynos_cpu_suspend(unsigned long arg)
>   {
>   #ifdef CONFIG_CACHE_L2X0
> @@ -387,6 +401,7 @@ static int exynos_cpu_pm_notifier(struct notifier_block *self,
>   			exynos_cpu_save_register();
>   			exynos_set_wakeupmask();
>   		}
> +		exynos_cpu_set_boot_vector();

Why this is outside of the if above? Should this really be called for 
all CPUs?

Best regards,
Tomasz

  reply	other threads:[~2014-04-09 12:27 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-08 12:19 [PATCH V3 00/17] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle Daniel Lezcano
2014-04-08 12:19 ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 01/17] ARM: exynos: cpuidle: Prevent forward declaration Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 02/17] ARM: exynos: cpuidle: use cpuidle_register Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 03/17] ARM: exynos: cpuidle: change function name prefix Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 04/17] ARM: exynos: cpuidle: encapsulate register access inside a function Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 05/17] ARM: exynos: cpuidle: Move some code inside the idle_finisher Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 06/17] ARM: exynos: cpuidle: Fix S5P_WAKEUP_STAT call Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 07/17] ARM: exynos: cpuidle: Use the cpu_pm notifier Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 08/17] ARM: exynos: cpuidle: Move scu_enable in " Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 09/17] ARM: exynos: cpuidle: Remove ifdef for scu_enable Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 10/17] ARM: exynos: cpuidle: Move exynos_set_wakeupmask in the cpu_pm notifier Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:14   ` Tomasz Figa
2014-04-09 12:14     ` Tomasz Figa
2014-04-08 12:19 ` [PATCH V3 11/17] ARM: exynos: cpuidle: Move the power sequence call " Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:17   ` Tomasz Figa
2014-04-09 12:17     ` Tomasz Figa
2014-04-09 13:33     ` Daniel Lezcano
2014-04-09 13:33       ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 12/17] ARM: exynos: cpuidle: Move S5P_CHECK_AFTR in a header Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:21   ` Tomasz Figa
2014-04-09 12:21     ` Tomasz Figa
2014-04-08 12:19 ` [PATCH V3 13/17] ARM: exynos: cpuidle: Move clock setup to pm.c Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-08 12:19 ` [PATCH V3 14/17] ARM: exynos: cpuidle: Move the boot vector in pm.c Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:27   ` Tomasz Figa [this message]
2014-04-09 12:27     ` Tomasz Figa
2014-04-08 12:19 ` [PATCH V3 15/17] ARM: exynos: cpuidle: Disable cpuidle for 5440 Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
     [not found]   ` <CAP245DUmBVeZqBYDc3mopvs_h5AkcTgjG2eO7z5VAQnUDJJogQ@mail.gmail.com>
2014-04-08 13:21     ` Daniel Lezcano
2014-04-08 13:21       ` Daniel Lezcano
2014-04-08 19:30       ` Nicolas Pitre
2014-04-08 19:30         ` Nicolas Pitre
2014-04-08 12:19 ` [PATCH V3 16/17] ARM: exynos: cpuidle: Pass the AFTR callback to the platform_data Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:29   ` Tomasz Figa
2014-04-09 12:29     ` Tomasz Figa
2014-04-08 12:19 ` [PATCH V3 17/17] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle directory Daniel Lezcano
2014-04-08 12:19   ` Daniel Lezcano
2014-04-09 12:30 ` [PATCH V3 00/17] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle Tomasz Figa
2014-04-09 12:30   ` Tomasz Figa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53453CAD.9050000@samsung.com \
    --to=t.figa@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=kgene.kim@samsung.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=sachin.kamat@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.