All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <87sjzzzbkj.fsf@deeprootsystems.com>

diff --git a/a/1.txt b/N1/1.txt
index 5036cc5..56c1c75 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,105 +1 @@
 [updated version of the patch, fixing issues raised by Vishwa]
-
->From 1661b0f7ad614d221f90eed590040f2cca01c265 Mon Sep 17 00:00:00 2001
-From: Kevin Hilman <khilman@deeprootsystems.com>
-Date: Thu, 23 Sep 2010 09:54:41 -0700
-Subject: [PATCH] OMAP3: CPUidle: trigger early idle notification call chain
-
-During the early part of the CPUidle path (state selection by the
-governer, checking for device activity, etc.) there is no (good)
-reason to have interrupts disabled.
-
-Therefore, enable interrupts early in the CPUidle path and then
-trigger the "early" idle notifier call chain after device activity
-checks and the next power states have been programmed.  Interrupts are
-then (re)disabled after the final state is selected.
-
-Also adjust the timing measurements reported back to the CPUidle core
-to ensure that time spent in the idle notifiers is included as part of
-the accounted time.
-
-Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
----
- arch/arm/mach-omap2/cpuidle34xx.c |   33 +++++++++++++++++++++++++++------
- 1 files changed, 27 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
-index 0d50b45..6c806a8 100644
---- a/arch/arm/mach-omap2/cpuidle34xx.c
-+++ b/arch/arm/mach-omap2/cpuidle34xx.c
-@@ -30,6 +30,7 @@
- #include <plat/powerdomain.h>
- #include <plat/clockdomain.h>
- #include <plat/serial.h>
-+#include <plat/common.h>
- 
- #include "pm.h"
- #include "control.h"
-@@ -128,12 +129,14 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
- 	/* Used to keep track of the total time in idle */
- 	getnstimeofday(&ts_preidle);
- 
--	local_irq_disable();
--	local_fiq_disable();
--
- 	pwrdm_set_next_pwrst(mpu_pd, mpu_state);
- 	pwrdm_set_next_pwrst(core_pd, core_state);
- 
-+	omap_early_idle_notifier_start();
-+
-+	local_irq_disable();
-+	local_fiq_disable();
-+
- 	if (omap_irq_pending() || need_resched())
- 		goto return_sleep_time;
- 
-@@ -151,12 +154,14 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
- 	}
- 
- return_sleep_time:
--	getnstimeofday(&ts_postidle);
--	ts_idle = timespec_sub(ts_postidle, ts_preidle);
--
- 	local_irq_enable();
- 	local_fiq_enable();
- 
-+	omap_early_idle_notifier_end();
-+
-+	getnstimeofday(&ts_postidle);
-+	ts_idle = timespec_sub(ts_postidle, ts_preidle);
-+
- 	return ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * USEC_PER_SEC;
- }
- 
-@@ -459,6 +464,21 @@ struct cpuidle_driver omap3_idle_driver = {
- 	.owner = 	THIS_MODULE,
- };
- 
-+static int omap3_idle_prepare(struct cpuidle_device *dev)
-+{
-+	/*
-+	 * Enable interrupts during the early part of the CPUidle path.
-+	 * They are later (re)disabled when the final state is selected.
-+	 *
-+	 * The primary reason for this is to enable non-atomic idle
-+	 * notifications to drivers that want to coordinate device
-+	 * idle transitions with CPU idle transitions.
-+	 */
-+	local_irq_enable();
-+
-+	return 0;
-+}
-+
- /**
-  * omap3_idle_init - Init routine for OMAP3 idle
-  *
-@@ -482,6 +502,7 @@ int __init omap3_idle_init(void)
- 
- 	dev = &per_cpu(omap3_idle_dev, smp_processor_id());
- 
-+	dev->prepare = omap3_idle_prepare;
- 	for (i = OMAP3_STATE_C1; i < OMAP3_MAX_STATES; i++) {
- 		cx = &omap3_power_states[i];
- 		state = &dev->states[count];
--- 
-1.7.2.1
diff --git a/a/content_digest b/N1/content_digest
index 2ace951..efcffce 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,116 +1,11 @@
  "ref\01287617926-24308-1-git-send-email-khilman@deeprootsystems.com\0"
  "ref\01287617926-24308-3-git-send-email-khilman@deeprootsystems.com\0"
- "From\0Kevin Hilman <khilman@deeprootsystems.com>\0"
- "Subject\0Re: [RFC/PATCH 2/2] OMAP3: CPUidle: trigger early idle notification call chain\0"
+ "From\0khilman@deeprootsystems.com (Kevin Hilman)\0"
+ "Subject\0[RFC/PATCH 2/2] OMAP3: CPUidle: trigger early idle notification call chain\0"
  "Date\0Thu, 21 Oct 2010 10:43:08 -0700\0"
- "To\0linux-omap@vger.kernel.org\0"
- "Cc\0linux-arm-kernel@lists.infradead.org\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
  "b\0"
- "[updated version of the patch, fixing issues raised by Vishwa]\n"
- "\n"
- ">From 1661b0f7ad614d221f90eed590040f2cca01c265 Mon Sep 17 00:00:00 2001\n"
- "From: Kevin Hilman <khilman@deeprootsystems.com>\n"
- "Date: Thu, 23 Sep 2010 09:54:41 -0700\n"
- "Subject: [PATCH] OMAP3: CPUidle: trigger early idle notification call chain\n"
- "\n"
- "During the early part of the CPUidle path (state selection by the\n"
- "governer, checking for device activity, etc.) there is no (good)\n"
- "reason to have interrupts disabled.\n"
- "\n"
- "Therefore, enable interrupts early in the CPUidle path and then\n"
- "trigger the \"early\" idle notifier call chain after device activity\n"
- "checks and the next power states have been programmed.  Interrupts are\n"
- "then (re)disabled after the final state is selected.\n"
- "\n"
- "Also adjust the timing measurements reported back to the CPUidle core\n"
- "to ensure that time spent in the idle notifiers is included as part of\n"
- "the accounted time.\n"
- "\n"
- "Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>\n"
- "---\n"
- " arch/arm/mach-omap2/cpuidle34xx.c |   33 +++++++++++++++++++++++++++------\n"
- " 1 files changed, 27 insertions(+), 6 deletions(-)\n"
- "\n"
- "diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c\n"
- "index 0d50b45..6c806a8 100644\n"
- "--- a/arch/arm/mach-omap2/cpuidle34xx.c\n"
- "+++ b/arch/arm/mach-omap2/cpuidle34xx.c\n"
- "@@ -30,6 +30,7 @@\n"
- " #include <plat/powerdomain.h>\n"
- " #include <plat/clockdomain.h>\n"
- " #include <plat/serial.h>\n"
- "+#include <plat/common.h>\n"
- " \n"
- " #include \"pm.h\"\n"
- " #include \"control.h\"\n"
- "@@ -128,12 +129,14 @@ static int omap3_enter_idle(struct cpuidle_device *dev,\n"
- " \t/* Used to keep track of the total time in idle */\n"
- " \tgetnstimeofday(&ts_preidle);\n"
- " \n"
- "-\tlocal_irq_disable();\n"
- "-\tlocal_fiq_disable();\n"
- "-\n"
- " \tpwrdm_set_next_pwrst(mpu_pd, mpu_state);\n"
- " \tpwrdm_set_next_pwrst(core_pd, core_state);\n"
- " \n"
- "+\tomap_early_idle_notifier_start();\n"
- "+\n"
- "+\tlocal_irq_disable();\n"
- "+\tlocal_fiq_disable();\n"
- "+\n"
- " \tif (omap_irq_pending() || need_resched())\n"
- " \t\tgoto return_sleep_time;\n"
- " \n"
- "@@ -151,12 +154,14 @@ static int omap3_enter_idle(struct cpuidle_device *dev,\n"
- " \t}\n"
- " \n"
- " return_sleep_time:\n"
- "-\tgetnstimeofday(&ts_postidle);\n"
- "-\tts_idle = timespec_sub(ts_postidle, ts_preidle);\n"
- "-\n"
- " \tlocal_irq_enable();\n"
- " \tlocal_fiq_enable();\n"
- " \n"
- "+\tomap_early_idle_notifier_end();\n"
- "+\n"
- "+\tgetnstimeofday(&ts_postidle);\n"
- "+\tts_idle = timespec_sub(ts_postidle, ts_preidle);\n"
- "+\n"
- " \treturn ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * USEC_PER_SEC;\n"
- " }\n"
- " \n"
- "@@ -459,6 +464,21 @@ struct cpuidle_driver omap3_idle_driver = {\n"
- " \t.owner = \tTHIS_MODULE,\n"
- " };\n"
- " \n"
- "+static int omap3_idle_prepare(struct cpuidle_device *dev)\n"
- "+{\n"
- "+\t/*\n"
- "+\t * Enable interrupts during the early part of the CPUidle path.\n"
- "+\t * They are later (re)disabled when the final state is selected.\n"
- "+\t *\n"
- "+\t * The primary reason for this is to enable non-atomic idle\n"
- "+\t * notifications to drivers that want to coordinate device\n"
- "+\t * idle transitions with CPU idle transitions.\n"
- "+\t */\n"
- "+\tlocal_irq_enable();\n"
- "+\n"
- "+\treturn 0;\n"
- "+}\n"
- "+\n"
- " /**\n"
- "  * omap3_idle_init - Init routine for OMAP3 idle\n"
- "  *\n"
- "@@ -482,6 +502,7 @@ int __init omap3_idle_init(void)\n"
- " \n"
- " \tdev = &per_cpu(omap3_idle_dev, smp_processor_id());\n"
- " \n"
- "+\tdev->prepare = omap3_idle_prepare;\n"
- " \tfor (i = OMAP3_STATE_C1; i < OMAP3_MAX_STATES; i++) {\n"
- " \t\tcx = &omap3_power_states[i];\n"
- " \t\tstate = &dev->states[count];\n"
- "-- \n"
- 1.7.2.1
+ [updated version of the patch, fixing issues raised by Vishwa]
 
-b672f09e76e039f5343f5c13aeef8bfd9604b1c586d3e36b20c0d812130bb815
+13038113d7423f74c88e32106b31bb99159313bdab19af0183f72149758ddb10

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.