All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
  2012-05-09 14:08 Daniel Lezcano
@ 2012-05-09 14:08 ` Daniel Lezcano
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-09 14:08 UTC (permalink / raw)
  To: linux-arm-kernel

The states are now part of the cpuidle_driver structure, so we can
declare the states in this structure directly. That saves us an extra
variable declaration and a memcpy.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 179460f..2750e54 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -51,33 +51,28 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 	return index;
 }
 
-static struct cpuidle_state s3c64xx_cpuidle_set[] = {
-	[0] = {
-		.enter			= s3c64xx_enter_idle,
-		.exit_latency		= 1,
-		.target_residency	= 1,
-		.flags			= CPUIDLE_FLAG_TIME_VALID,
-		.name			= "IDLE",
-		.desc			= "System active, ARM gated",
-	},
-};
+static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
-	.name		= "s3c64xx_cpuidle",
-	.owner		= THIS_MODULE,
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
-};
-
-static struct cpuidle_device s3c64xx_cpuidle_device = {
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
+	.name	= "s3c64xx_cpuidle",
+	.owner  = THIS_MODULE,
+	.states = {
+		{
+			.enter            = s3c64xx_enter_idle,
+			.exit_latency     = 1,
+			.target_residency = 1,
+			.flags            = CPUIDLE_FLAG_TIME_VALID,
+			.name             = "IDLE",
+			.desc             = "System active, ARM gated",
+		},
+	},
+	.state_count = 1,
 };
 
 static int __init s3c64xx_init_cpuidle(void)
 {
 	int ret;
 
-	memcpy(s3c64xx_cpuidle_driver.states, s3c64xx_cpuidle_set,
-	       sizeof(s3c64xx_cpuidle_set));
 	cpuidle_register_driver(&s3c64xx_cpuidle_driver);
 
 	ret = cpuidle_register_device(&s3c64xx_cpuidle_device);
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups
@ 2012-05-14 14:06 ` Daniel Lezcano
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: ben-linux, kgene.kim, broonie
  Cc: linux-arm-kernel, linaro-dev, patches, linux-samsung-soc, heiko

These couple of patches use the new cpuidle core api to refactor
some part of the code. The first one declares the states directly
in the driver declaration and the second one use the timekeeping
flag to let the cpuidle core to compute the idle time.

I don't have this board, I was not able to test these patches.

Daniel Lezcano (2):
  ARM: s3c64xx: cpuidle - declare the states with the new api
  ARM: s3c64xx: cpuidle - use timekeeping wrapper

 arch/arm/mach-s3c64xx/cpuidle.c |   45 +++++++++++++--------------------------
 1 files changed, 15 insertions(+), 30 deletions(-)

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups
@ 2012-05-14 14:06 ` Daniel Lezcano
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: linux-arm-kernel

These couple of patches use the new cpuidle core api to refactor
some part of the code. The first one declares the states directly
in the driver declaration and the second one use the timekeeping
flag to let the cpuidle core to compute the idle time.

I don't have this board, I was not able to test these patches.

Daniel Lezcano (2):
  ARM: s3c64xx: cpuidle - declare the states with the new api
  ARM: s3c64xx: cpuidle - use timekeeping wrapper

 arch/arm/mach-s3c64xx/cpuidle.c |   45 +++++++++++++--------------------------
 1 files changed, 15 insertions(+), 30 deletions(-)

-- 
1.7.5.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
  2012-05-14 14:06 ` Daniel Lezcano
@ 2012-05-14 14:06   ` Daniel Lezcano
  -1 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: ben-linux, kgene.kim, broonie
  Cc: linux-arm-kernel, linaro-dev, patches, linux-samsung-soc, heiko

The states are now part of the cpuidle_driver structure, so we can
declare the states in this structure directly. That saves us an extra
variable declaration and a memcpy.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 179460f..2750e54 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -51,33 +51,28 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 	return index;
 }
 
-static struct cpuidle_state s3c64xx_cpuidle_set[] = {
-	[0] = {
-		.enter			= s3c64xx_enter_idle,
-		.exit_latency		= 1,
-		.target_residency	= 1,
-		.flags			= CPUIDLE_FLAG_TIME_VALID,
-		.name			= "IDLE",
-		.desc			= "System active, ARM gated",
-	},
-};
+static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
-	.name		= "s3c64xx_cpuidle",
-	.owner		= THIS_MODULE,
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
-};
-
-static struct cpuidle_device s3c64xx_cpuidle_device = {
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
+	.name	= "s3c64xx_cpuidle",
+	.owner  = THIS_MODULE,
+	.states = {
+		{
+			.enter            = s3c64xx_enter_idle,
+			.exit_latency     = 1,
+			.target_residency = 1,
+			.flags            = CPUIDLE_FLAG_TIME_VALID,
+			.name             = "IDLE",
+			.desc             = "System active, ARM gated",
+		},
+	},
+	.state_count = 1,
 };
 
 static int __init s3c64xx_init_cpuidle(void)
 {
 	int ret;
 
-	memcpy(s3c64xx_cpuidle_driver.states, s3c64xx_cpuidle_set,
-	       sizeof(s3c64xx_cpuidle_set));
 	cpuidle_register_driver(&s3c64xx_cpuidle_driver);
 
 	ret = cpuidle_register_device(&s3c64xx_cpuidle_device);
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
@ 2012-05-14 14:06   ` Daniel Lezcano
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: linux-arm-kernel

The states are now part of the cpuidle_driver structure, so we can
declare the states in this structure directly. That saves us an extra
variable declaration and a memcpy.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 179460f..2750e54 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -51,33 +51,28 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 	return index;
 }
 
-static struct cpuidle_state s3c64xx_cpuidle_set[] = {
-	[0] = {
-		.enter			= s3c64xx_enter_idle,
-		.exit_latency		= 1,
-		.target_residency	= 1,
-		.flags			= CPUIDLE_FLAG_TIME_VALID,
-		.name			= "IDLE",
-		.desc			= "System active, ARM gated",
-	},
-};
+static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
-	.name		= "s3c64xx_cpuidle",
-	.owner		= THIS_MODULE,
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
-};
-
-static struct cpuidle_device s3c64xx_cpuidle_device = {
-	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
+	.name	= "s3c64xx_cpuidle",
+	.owner  = THIS_MODULE,
+	.states = {
+		{
+			.enter            = s3c64xx_enter_idle,
+			.exit_latency     = 1,
+			.target_residency = 1,
+			.flags            = CPUIDLE_FLAG_TIME_VALID,
+			.name             = "IDLE",
+			.desc             = "System active, ARM gated",
+		},
+	},
+	.state_count = 1,
 };
 
 static int __init s3c64xx_init_cpuidle(void)
 {
 	int ret;
 
-	memcpy(s3c64xx_cpuidle_driver.states, s3c64xx_cpuidle_set,
-	       sizeof(s3c64xx_cpuidle_set));
 	cpuidle_register_driver(&s3c64xx_cpuidle_driver);
 
 	ret = cpuidle_register_device(&s3c64xx_cpuidle_device);
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper
  2012-05-14 14:06 ` Daniel Lezcano
@ 2012-05-14 14:06     ` Daniel Lezcano
  -1 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: ben-linux-elnMNo+KYs3YtjvyW6yDsg,
	kgene.kim-Sze3O3UU22JBDgjK7y7TUQ,
	broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E
  Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
	linaro-dev-cunTk1MwBs8s++Sfvej+rw, heiko-4mtYJXux2i+zQB+pC5nmwQ,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	patches-QSEj5FYQhm4dnm+yROfE0A

The timekeeping is computed from the cpuidle core if we set
the .en_core_tk_irqen flag. Let's use it and remove the duplicated
code.

Signed-off-by: Daniel Lezcano <daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 2750e54..acb197c 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -27,12 +27,7 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 			      struct cpuidle_driver *drv,
 			      int index)
 {
-	struct timeval before, after;
 	unsigned long tmp;
-	int idle_time;
-
-	local_irq_disable();
-	do_gettimeofday(&before);
 
 	/* Setup PWRCFG to enter idle mode */
 	tmp = __raw_readl(S3C64XX_PWR_CFG);
@@ -42,12 +37,6 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 
 	cpu_do_idle();
 
-	do_gettimeofday(&after);
-	local_irq_enable();
-	idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC +
-		    (after.tv_usec - before.tv_usec);
-
-	dev->last_residency = idle_time;
 	return index;
 }
 
@@ -56,6 +45,7 @@ static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
 	.name	= "s3c64xx_cpuidle",
 	.owner  = THIS_MODULE,
+	.en_core_tk_irqen = 1,
 	.states = {
 		{
 			.enter            = s3c64xx_enter_idle,
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper
@ 2012-05-14 14:06     ` Daniel Lezcano
  0 siblings, 0 replies; 17+ messages in thread
From: Daniel Lezcano @ 2012-05-14 14:06 UTC (permalink / raw)
  To: linux-arm-kernel

The timekeeping is computed from the cpuidle core if we set
the .en_core_tk_irqen flag. Let's use it and remove the duplicated
code.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-s3c64xx/cpuidle.c |   12 +-----------
 1 files changed, 1 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c
index 2750e54..acb197c 100644
--- a/arch/arm/mach-s3c64xx/cpuidle.c
+++ b/arch/arm/mach-s3c64xx/cpuidle.c
@@ -27,12 +27,7 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 			      struct cpuidle_driver *drv,
 			      int index)
 {
-	struct timeval before, after;
 	unsigned long tmp;
-	int idle_time;
-
-	local_irq_disable();
-	do_gettimeofday(&before);
 
 	/* Setup PWRCFG to enter idle mode */
 	tmp = __raw_readl(S3C64XX_PWR_CFG);
@@ -42,12 +37,6 @@ static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 
 	cpu_do_idle();
 
-	do_gettimeofday(&after);
-	local_irq_enable();
-	idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC +
-		    (after.tv_usec - before.tv_usec);
-
-	dev->last_residency = idle_time;
 	return index;
 }
 
@@ -56,6 +45,7 @@ static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
 static struct cpuidle_driver s3c64xx_cpuidle_driver = {
 	.name	= "s3c64xx_cpuidle",
 	.owner  = THIS_MODULE,
+	.en_core_tk_irqen = 1,
 	.states = {
 		{
 			.enter            = s3c64xx_enter_idle,
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* RE: [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups
  2012-05-14 14:06 ` Daniel Lezcano
@ 2012-05-17  6:57   ` Kukjin Kim
  -1 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-17  6:57 UTC (permalink / raw)
  To: 'Daniel Lezcano', ben-linux, broonie
  Cc: linux-arm-kernel, linaro-dev, patches, linux-samsung-soc, heiko

Daniel Lezcano wrote:
> 
> These couple of patches use the new cpuidle core api to refactor
> some part of the code. The first one declares the states directly
> in the driver declaration and the second one use the timekeeping
> flag to let the cpuidle core to compute the idle time.
> 
Basically, looks ok to me.

> I don't have this board, I was not able to test these patches.
> 
Mark, could you please check this patches on your board?
Now, my smdk6410 has some problem to test this :(

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> Daniel Lezcano (2):
>   ARM: s3c64xx: cpuidle - declare the states with the new api
>   ARM: s3c64xx: cpuidle - use timekeeping wrapper
> 
>  arch/arm/mach-s3c64xx/cpuidle.c |   45
+++++++++++++----------------------
> ----
>  1 files changed, 15 insertions(+), 30 deletions(-)
> 
> --
> 1.7.5.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups
@ 2012-05-17  6:57   ` Kukjin Kim
  0 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-17  6:57 UTC (permalink / raw)
  To: linux-arm-kernel

Daniel Lezcano wrote:
> 
> These couple of patches use the new cpuidle core api to refactor
> some part of the code. The first one declares the states directly
> in the driver declaration and the second one use the timekeeping
> flag to let the cpuidle core to compute the idle time.
> 
Basically, looks ok to me.

> I don't have this board, I was not able to test these patches.
> 
Mark, could you please check this patches on your board?
Now, my smdk6410 has some problem to test this :(

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> Daniel Lezcano (2):
>   ARM: s3c64xx: cpuidle - declare the states with the new api
>   ARM: s3c64xx: cpuidle - use timekeeping wrapper
> 
>  arch/arm/mach-s3c64xx/cpuidle.c |   45
+++++++++++++----------------------
> ----
>  1 files changed, 15 insertions(+), 30 deletions(-)
> 
> --
> 1.7.5.4

^ permalink raw reply	[flat|nested] 17+ messages in thread

* RE: [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
  2012-05-14 14:06   ` Daniel Lezcano
@ 2012-05-17  7:02     ` Kukjin Kim
  -1 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-17  7:02 UTC (permalink / raw)
  To: 'Daniel Lezcano', ben-linux, broonie
  Cc: linux-arm-kernel, linaro-dev, patches, linux-samsung-soc, heiko

Daniel Lezcano wrote:
> 
> The states are now part of the cpuidle_driver structure, so we can
> declare the states in this structure directly. That saves us an extra
> variable declaration and a memcpy.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  arch/arm/mach-s3c64xx/cpuidle.c |   33 ++++++++++++++-------------------
>  1 files changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-
> s3c64xx/cpuidle.c
> index 179460f..2750e54 100644
> --- a/arch/arm/mach-s3c64xx/cpuidle.c
> +++ b/arch/arm/mach-s3c64xx/cpuidle.c
> @@ -51,33 +51,28 @@ static int s3c64xx_enter_idle(struct cpuidle_device
> *dev,
>  	return index;
>  }
> 
> -static struct cpuidle_state s3c64xx_cpuidle_set[] = {
> -	[0] = {
> -		.enter			= s3c64xx_enter_idle,
> -		.exit_latency		= 1,
> -		.target_residency	= 1,
> -		.flags			= CPUIDLE_FLAG_TIME_VALID,
> -		.name			= "IDLE",
> -		.desc			= "System active, ARM gated",
> -	},
> -};
> +static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
> 
>  static struct cpuidle_driver s3c64xx_cpuidle_driver = {
> -	.name		= "s3c64xx_cpuidle",
> -	.owner		= THIS_MODULE,
> -	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
> -};
> -
> -static struct cpuidle_device s3c64xx_cpuidle_device = {
> -	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
> +	.name	= "s3c64xx_cpuidle",
> +	.owner  = THIS_MODULE,

I'd preferred to use original 'tab'

> +	.states = {
> +		{
> +			.enter            = s3c64xx_enter_idle,
> +			.exit_latency     = 1,
> +			.target_residency = 1,
> +			.flags            = CPUIDLE_FLAG_TIME_VALID,
> +			.name             = "IDLE",
> +			.desc             = "System active, ARM gated",
> +		},
> +	},
> +	.state_count = 1,
>  };
> 
>  static int __init s3c64xx_init_cpuidle(void)
>  {
>  	int ret;
> 
> -	memcpy(s3c64xx_cpuidle_driver.states, s3c64xx_cpuidle_set,
> -	       sizeof(s3c64xx_cpuidle_set));
>  	cpuidle_register_driver(&s3c64xx_cpuidle_driver);
> 
>  	ret = cpuidle_register_device(&s3c64xx_cpuidle_device);
> --
> 1.7.5.4


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
@ 2012-05-17  7:02     ` Kukjin Kim
  0 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-17  7:02 UTC (permalink / raw)
  To: linux-arm-kernel

Daniel Lezcano wrote:
> 
> The states are now part of the cpuidle_driver structure, so we can
> declare the states in this structure directly. That saves us an extra
> variable declaration and a memcpy.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  arch/arm/mach-s3c64xx/cpuidle.c |   33 ++++++++++++++-------------------
>  1 files changed, 14 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-
> s3c64xx/cpuidle.c
> index 179460f..2750e54 100644
> --- a/arch/arm/mach-s3c64xx/cpuidle.c
> +++ b/arch/arm/mach-s3c64xx/cpuidle.c
> @@ -51,33 +51,28 @@ static int s3c64xx_enter_idle(struct cpuidle_device
> *dev,
>  	return index;
>  }
> 
> -static struct cpuidle_state s3c64xx_cpuidle_set[] = {
> -	[0] = {
> -		.enter			= s3c64xx_enter_idle,
> -		.exit_latency		= 1,
> -		.target_residency	= 1,
> -		.flags			= CPUIDLE_FLAG_TIME_VALID,
> -		.name			= "IDLE",
> -		.desc			= "System active, ARM gated",
> -	},
> -};
> +static DEFINE_PER_CPU(struct cpuidle_device, s3c64xx_cpuidle_device);
> 
>  static struct cpuidle_driver s3c64xx_cpuidle_driver = {
> -	.name		= "s3c64xx_cpuidle",
> -	.owner		= THIS_MODULE,
> -	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
> -};
> -
> -static struct cpuidle_device s3c64xx_cpuidle_device = {
> -	.state_count	= ARRAY_SIZE(s3c64xx_cpuidle_set),
> +	.name	= "s3c64xx_cpuidle",
> +	.owner  = THIS_MODULE,

I'd preferred to use original 'tab'

> +	.states = {
> +		{
> +			.enter            = s3c64xx_enter_idle,
> +			.exit_latency     = 1,
> +			.target_residency = 1,
> +			.flags            = CPUIDLE_FLAG_TIME_VALID,
> +			.name             = "IDLE",
> +			.desc             = "System active, ARM gated",
> +		},
> +	},
> +	.state_count = 1,
>  };
> 
>  static int __init s3c64xx_init_cpuidle(void)
>  {
>  	int ret;
> 
> -	memcpy(s3c64xx_cpuidle_driver.states, s3c64xx_cpuidle_set,
> -	       sizeof(s3c64xx_cpuidle_set));
>  	cpuidle_register_driver(&s3c64xx_cpuidle_driver);
> 
>  	ret = cpuidle_register_device(&s3c64xx_cpuidle_device);
> --
> 1.7.5.4


Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
  2012-05-14 14:06   ` Daniel Lezcano
@ 2012-05-17 12:28     ` Mark Brown
  -1 siblings, 0 replies; 17+ messages in thread
From: Mark Brown @ 2012-05-17 12:28 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: ben-linux, kgene.kim, linux-arm-kernel, linaro-dev, patches,
	linux-samsung-soc, heiko

[-- Attachment #1: Type: text/plain, Size: 303 bytes --]

On Mon, May 14, 2012 at 04:06:16PM +0200, Daniel Lezcano wrote:
> The states are now part of the cpuidle_driver structure, so we can
> declare the states in this structure directly. That saves us an extra
> variable declaration and a memcpy.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
@ 2012-05-17 12:28     ` Mark Brown
  0 siblings, 0 replies; 17+ messages in thread
From: Mark Brown @ 2012-05-17 12:28 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 14, 2012 at 04:06:16PM +0200, Daniel Lezcano wrote:
> The states are now part of the cpuidle_driver structure, so we can
> declare the states in this structure directly. That saves us an extra
> variable declaration and a memcpy.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120517/5806f7b3/attachment.sig>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper
  2012-05-14 14:06     ` Daniel Lezcano
@ 2012-05-17 12:28       ` Mark Brown
  -1 siblings, 0 replies; 17+ messages in thread
From: Mark Brown @ 2012-05-17 12:28 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: ben-linux, kgene.kim, linux-arm-kernel, linaro-dev, patches,
	linux-samsung-soc, heiko

[-- Attachment #1: Type: text/plain, Size: 264 bytes --]

On Mon, May 14, 2012 at 04:06:17PM +0200, Daniel Lezcano wrote:
> The timekeeping is computed from the cpuidle core if we set
> the .en_core_tk_irqen flag. Let's use it and remove the duplicated
> code.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper
@ 2012-05-17 12:28       ` Mark Brown
  0 siblings, 0 replies; 17+ messages in thread
From: Mark Brown @ 2012-05-17 12:28 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, May 14, 2012 at 04:06:17PM +0200, Daniel Lezcano wrote:
> The timekeeping is computed from the cpuidle core if we set
> the .en_core_tk_irqen flag. Let's use it and remove the duplicated
> code.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120517/ede2bb6e/attachment.sig>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
  2012-05-17 12:28     ` Mark Brown
@ 2012-05-19 17:35       ` Kukjin Kim
  -1 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-19 17:35 UTC (permalink / raw)
  To: Mark Brown
  Cc: Daniel Lezcano, ben-linux, kgene.kim, linux-arm-kernel,
	linaro-dev, patches, linux-samsung-soc, heiko

On 05/17/12 21:28, Mark Brown wrote:
> On Mon, May 14, 2012 at 04:06:16PM +0200, Daniel Lezcano wrote:
>> The states are now part of the cpuidle_driver structure, so we can
>> declare the states in this structure directly. That saves us an extra
>> variable declaration and a memcpy.
>
> Tested-by: Mark Brown<broonie@opensource.wolfsonmicro.com>

Thanks for testing, applied this series.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api
@ 2012-05-19 17:35       ` Kukjin Kim
  0 siblings, 0 replies; 17+ messages in thread
From: Kukjin Kim @ 2012-05-19 17:35 UTC (permalink / raw)
  To: linux-arm-kernel

On 05/17/12 21:28, Mark Brown wrote:
> On Mon, May 14, 2012 at 04:06:16PM +0200, Daniel Lezcano wrote:
>> The states are now part of the cpuidle_driver structure, so we can
>> declare the states in this structure directly. That saves us an extra
>> variable declaration and a memcpy.
>
> Tested-by: Mark Brown<broonie@opensource.wolfsonmicro.com>

Thanks for testing, applied this series.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-05-19 17:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-14 14:06 [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups Daniel Lezcano
2012-05-14 14:06 ` Daniel Lezcano
2012-05-14 14:06 ` [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api Daniel Lezcano
2012-05-14 14:06   ` Daniel Lezcano
2012-05-17  7:02   ` Kukjin Kim
2012-05-17  7:02     ` Kukjin Kim
2012-05-17 12:28   ` Mark Brown
2012-05-17 12:28     ` Mark Brown
2012-05-19 17:35     ` Kukjin Kim
2012-05-19 17:35       ` Kukjin Kim
     [not found] ` <1337004377-17732-1-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2012-05-14 14:06   ` [PATCH 2/2] ARM: s3c64xx: cpuidle - use timekeeping wrapper Daniel Lezcano
2012-05-14 14:06     ` Daniel Lezcano
2012-05-17 12:28     ` Mark Brown
2012-05-17 12:28       ` Mark Brown
2012-05-17  6:57 ` [PATCH 0/2] ARM: S3C64xx: cpuidle cleanups Kukjin Kim
2012-05-17  6:57   ` Kukjin Kim
  -- strict thread matches above, loose matches on Subject: below --
2012-05-09 14:08 Daniel Lezcano
2012-05-09 14:08 ` [PATCH 1/2] ARM: s3c64xx: cpuidle - declare the states with the new api Daniel Lezcano

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.