linux-omap 2.6.39: add base PM set back in
authorKoen Kooi <koen@dominion.thruhere.net>
Tue, 24 May 2011 08:22:12 +0000 (10:22 +0200)
committerKoen Kooi <koen@dominion.thruhere.net>
Tue, 24 May 2011 08:22:12 +0000 (10:22 +0200)
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
13 files changed:
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0001-OMAP3-voltage-remove-spurious-pr_notice-for-debugfs.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0002-OMAP4-PM-remove-redundant-ifdef-CONFIG_PM.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0003-OMAP3-smartreflex-fix-sr_late_init-error-path-in-pro.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0004-OMAP3-smartreflex-request-the-memory-region.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0005-OMAP3-smartreflex-fix-ioremap-leak-on-probe-error.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0006-OMAP3-smartreflex-delete-instance-from-sr_list-on-pr.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0007-OMAP3-smartreflex-delete-debugfs-entries-on-probe-er.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0008-OMAP3-cpuidle-remove-useless-SDP-specific-timings.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0009-OMAP3-SR-make-notify-independent-of-class.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0010-OMAP3-SR-disable-interrupt-by-default.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0011-OMAP3-SR-enable-disable-SR-only-on-need.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0012-OMAP3-SR-fix-cosmetic-indentation.patch [new file with mode: 0644]
recipes-kernel/linux/linux-omap_2.6.39.bb

diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0001-OMAP3-voltage-remove-spurious-pr_notice-for-debugfs.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0001-OMAP3-voltage-remove-spurious-pr_notice-for-debugfs.patch
new file mode 100644 (file)
index 0000000..f1a5bbb
--- /dev/null
@@ -0,0 +1,30 @@
+From 26d1f5966161349845884ae3c8f558d2580f1eb9 Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Sat, 12 Feb 2011 17:27:14 +0530
+Subject: [PATCH 01/12] OMAP3+: voltage: remove spurious pr_notice for debugfs
+
+cat of debugfs entry for vp_volt provides voltage. The additional pr_notice
+is just spam on console and provides no additional information.
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/voltage.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c
+index 0c1552d..9ef3789 100644
+--- a/arch/arm/mach-omap2/voltage.c
++++ b/arch/arm/mach-omap2/voltage.c
+@@ -148,7 +148,6 @@ static int vp_volt_debug_get(void *data, u64 *val)
+       }
+       vsel = vdd->read_reg(prm_mod_offs, vdd->vp_data->voltage);
+-      pr_notice("curr_vsel = %x\n", vsel);
+       if (!vdd->pmic_info->vsel_to_uv) {
+               pr_warning("PMIC function to convert vsel to voltage"
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0002-OMAP4-PM-remove-redundant-ifdef-CONFIG_PM.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0002-OMAP4-PM-remove-redundant-ifdef-CONFIG_PM.patch
new file mode 100644 (file)
index 0000000..186c684
--- /dev/null
@@ -0,0 +1,41 @@
+From f9e0aa8fa5538ddd92e12c5a062e78b0ae5e47e9 Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Sun, 13 Mar 2011 09:07:23 +0530
+Subject: [PATCH 02/12] OMAP4: PM: remove redundant #ifdef CONFIG_PM
+
+pm44xx.c is built only when CONFIG_PM is setup,
+remove redundant CONFIG_PM check.
+
+This also fixes:
+https://bugzilla.kernel.org/show_bug.cgi?id=25022
+
+Reported-by: Martin Etti <ettl.martin@gmx.de>
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/pm44xx.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
+index 76cfff2..59a870b 100644
+--- a/arch/arm/mach-omap2/pm44xx.c
++++ b/arch/arm/mach-omap2/pm44xx.c
+@@ -105,13 +105,11 @@ static int __init omap4_pm_init(void)
+       pr_err("Power Management for TI OMAP4.\n");
+-#ifdef CONFIG_PM
+       ret = pwrdm_for_each(pwrdms_setup, NULL);
+       if (ret) {
+               pr_err("Failed to setup powerdomains\n");
+               goto err2;
+       }
+-#endif
+ #ifdef CONFIG_SUSPEND
+       suspend_set_ops(&omap_pm_ops);
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0003-OMAP3-smartreflex-fix-sr_late_init-error-path-in-pro.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0003-OMAP3-smartreflex-fix-sr_late_init-error-path-in-pro.patch
new file mode 100644 (file)
index 0000000..8e6a11b
--- /dev/null
@@ -0,0 +1,30 @@
+From c57f8521c772b2a934dc090d68d7ca3b33c99a46 Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@nokia.com>
+Date: Thu, 24 Mar 2011 18:35:31 +0200
+Subject: [PATCH 03/12] OMAP3+: smartreflex: fix sr_late_init() error path in probe
+
+sr_late_init() will take care of freeing the resources.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 13e24f9..dbc4b6f 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -883,7 +883,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+               ret = sr_late_init(sr_info);
+               if (ret) {
+                       pr_warning("%s: Error in SR late init\n", __func__);
+-                      goto err_release_region;
++                      return ret;
+               }
+       }
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0004-OMAP3-smartreflex-request-the-memory-region.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0004-OMAP3-smartreflex-request-the-memory-region.patch
new file mode 100644 (file)
index 0000000..335f092
--- /dev/null
@@ -0,0 +1,36 @@
+From e09d0dd5be3f582aaf4626b3be0eeba42ca598bd Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@nokia.com>
+Date: Thu, 24 Mar 2011 18:35:32 +0200
+Subject: [PATCH 04/12] OMAP3+: smartreflex: request the memory region
+
+We are releasing the memory region, but never actually request it.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index dbc4b6f..703143a 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -847,6 +847,14 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+               goto err_free_devinfo;
+       }
++      mem = request_mem_region(mem->start, resource_size(mem),
++                                      dev_name(&pdev->dev));
++      if (!mem) {
++              dev_err(&pdev->dev, "%s: no mem region\n", __func__);
++              ret = -EBUSY;
++              goto err_free_devinfo;
++      }
++
+       irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+       pm_runtime_enable(&pdev->dev);
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0005-OMAP3-smartreflex-fix-ioremap-leak-on-probe-error.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0005-OMAP3-smartreflex-fix-ioremap-leak-on-probe-error.patch
new file mode 100644 (file)
index 0000000..7783da7
--- /dev/null
@@ -0,0 +1,66 @@
+From ca7c837b7f6c37c86d0646774a60d82848557411 Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@nokia.com>
+Date: Thu, 24 Mar 2011 18:35:33 +0200
+Subject: [PATCH 05/12] OMAP3+: smartreflex: fix ioremap leak on probe error
+
+Add missing iounmap() to error paths.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |   10 ++++++----
+ 1 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 703143a..156807e 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -904,7 +904,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+       vdd_dbg_dir = omap_voltage_get_dbgdir(sr_info->voltdm);
+       if (!vdd_dbg_dir) {
+               ret = -EINVAL;
+-              goto err_release_region;
++              goto err_iounmap;
+       }
+       sr_info->dbg_dir = debugfs_create_dir("smartreflex", vdd_dbg_dir);
+@@ -912,7 +912,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+               dev_err(&pdev->dev, "%s: Unable to create debugfs directory\n",
+                       __func__);
+               ret = PTR_ERR(sr_info->dbg_dir);
+-              goto err_release_region;
++              goto err_iounmap;
+       }
+       (void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR,
+@@ -929,7 +929,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+               dev_err(&pdev->dev, "%s: Unable to create debugfs directory"
+                       "for n-values\n", __func__);
+               ret = PTR_ERR(nvalue_dir);
+-              goto err_release_region;
++              goto err_iounmap;
+       }
+       omap_voltage_get_volttable(sr_info->voltdm, &volt_data);
+@@ -939,7 +939,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+                       "entries for n-values\n",
+                       __func__, sr_info->voltdm->name);
+               ret = -ENODATA;
+-              goto err_release_region;
++              goto err_iounmap;
+       }
+       for (i = 0; i < sr_info->nvalue_count; i++) {
+@@ -953,6 +953,8 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+       return ret;
++err_iounmap:
++      iounmap(sr_info->base);
+ err_release_region:
+       release_mem_region(mem->start, resource_size(mem));
+ err_free_devinfo:
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0006-OMAP3-smartreflex-delete-instance-from-sr_list-on-pr.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0006-OMAP3-smartreflex-delete-instance-from-sr_list-on-pr.patch
new file mode 100644 (file)
index 0000000..8c5fe19
--- /dev/null
@@ -0,0 +1,29 @@
+From 11af4217e7e6c2c21d1fe9e5f317a5baabf9a361 Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@nokia.com>
+Date: Thu, 24 Mar 2011 18:35:34 +0200
+Subject: [PATCH 06/12] OMAP3+: smartreflex: delete instance from sr_list on probe error
+
+If the probe fails, the node should be deleted from sr_list.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 156807e..f0a488a 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -954,6 +954,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+       return ret;
+ err_iounmap:
++      list_del(&sr_info->node);
+       iounmap(sr_info->base);
+ err_release_region:
+       release_mem_region(mem->start, resource_size(mem));
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0007-OMAP3-smartreflex-delete-debugfs-entries-on-probe-er.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0007-OMAP3-smartreflex-delete-debugfs-entries-on-probe-er.patch
new file mode 100644 (file)
index 0000000..1f4d43c
--- /dev/null
@@ -0,0 +1,48 @@
+From d4ead89805d1146f79a3204467eecb19dcdc442a Mon Sep 17 00:00:00 2001
+From: Aaro Koskinen <aaro.koskinen@nokia.com>
+Date: Thu, 24 Mar 2011 18:35:35 +0200
+Subject: [PATCH 07/12] OMAP3+: smartreflex: delete debugfs entries on probe error
+
+Delete created debugfs entries if probe fails.
+
+Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index f0a488a..fb7dc52 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -929,7 +929,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+               dev_err(&pdev->dev, "%s: Unable to create debugfs directory"
+                       "for n-values\n", __func__);
+               ret = PTR_ERR(nvalue_dir);
+-              goto err_iounmap;
++              goto err_debugfs;
+       }
+       omap_voltage_get_volttable(sr_info->voltdm, &volt_data);
+@@ -939,7 +939,7 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+                       "entries for n-values\n",
+                       __func__, sr_info->voltdm->name);
+               ret = -ENODATA;
+-              goto err_iounmap;
++              goto err_debugfs;
+       }
+       for (i = 0; i < sr_info->nvalue_count; i++) {
+@@ -953,6 +953,8 @@ static int __init omap_sr_probe(struct platform_device *pdev)
+       return ret;
++err_debugfs:
++      debugfs_remove_recursive(sr_info->dbg_dir);
+ err_iounmap:
+       list_del(&sr_info->node);
+       iounmap(sr_info->base);
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0008-OMAP3-cpuidle-remove-useless-SDP-specific-timings.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0008-OMAP3-cpuidle-remove-useless-SDP-specific-timings.patch
new file mode 100644 (file)
index 0000000..185454e
--- /dev/null
@@ -0,0 +1,57 @@
+From 9f4d8f56ce3268ee3e2efc9489d50d66d361f32d Mon Sep 17 00:00:00 2001
+From: Jean Pihet <j-pihet@ti.com>
+Date: Fri, 29 Apr 2011 11:26:22 +0200
+Subject: [PATCH 08/12] OMAP3 cpuidle: remove useless SDP specific timings
+
+The cpuidle states settings can be overriden by some board-
+specific settings, by calling omap3_pm_init_cpuidle.
+Remove the 3430SDP specific states settings registration
+since the figures are identical to the default ones (in cpuidle34xx.c).
+
+Signed-off-by: Jean Pihet <j-pihet@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/board-3430sdp.c |   19 -------------------
+ 1 files changed, 0 insertions(+), 19 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
+index 9afd087..7ffad7b 100644
+--- a/arch/arm/mach-omap2/board-3430sdp.c
++++ b/arch/arm/mach-omap2/board-3430sdp.c
+@@ -59,24 +59,6 @@
+ #define TWL4030_MSECURE_GPIO 22
+-/* FIXME: These values need to be updated based on more profiling on 3430sdp*/
+-static struct cpuidle_params omap3_cpuidle_params_table[] = {
+-      /* C1 */
+-      {1, 2, 2, 5},
+-      /* C2 */
+-      {1, 10, 10, 30},
+-      /* C3 */
+-      {1, 50, 50, 300},
+-      /* C4 */
+-      {1, 1500, 1800, 4000},
+-      /* C5 */
+-      {1, 2500, 7500, 12000},
+-      /* C6 */
+-      {1, 3000, 8500, 15000},
+-      /* C7 */
+-      {1, 10000, 30000, 300000},
+-};
+-
+ static uint32_t board_keymap[] = {
+       KEY(0, 0, KEY_LEFT),
+       KEY(0, 1, KEY_RIGHT),
+@@ -883,7 +865,6 @@ static void __init omap_3430sdp_init(void)
+       omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
+       omap_board_config = sdp3430_config;
+       omap_board_config_size = ARRAY_SIZE(sdp3430_config);
+-      omap3_pm_init_cpuidle(omap3_cpuidle_params_table);
+       omap3430_i2c_init();
+       omap_display_init(&sdp3430_dss_data);
+       if (omap_rev() > OMAP3430_REV_ES1_0)
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0009-OMAP3-SR-make-notify-independent-of-class.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0009-OMAP3-SR-make-notify-independent-of-class.patch
new file mode 100644 (file)
index 0000000..88a45ba
--- /dev/null
@@ -0,0 +1,48 @@
+From 62629e3664ff1e3c9b34b94b81eafa153671e1ed Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Mon, 14 Feb 2011 12:16:36 +0530
+Subject: [PATCH 09/12] OMAP3+: SR: make notify independent of class
+
+Interrupt notification mechanism of SmartReflex can be used by the
+choice of implementation of the class driver. For example, Class 2 and
+Class 1.5 of SmartReflex can both use the interrupt notification to
+identify the transition of voltage or other events.
+
+Hence, the actual class does not matter for notifier. Let the class
+driver's handling decide how it should be used. SmartReflex driver
+should provide just the primitives.
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    6 ++----
+ 1 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index fb7dc52..3ee7261 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -143,7 +143,7 @@ static irqreturn_t sr_interrupt(int irq, void *data)
+               sr_write_reg(sr_info, IRQSTATUS, status);
+       }
+-      if (sr_class->class_type == SR_CLASS2 && sr_class->notify)
++      if (sr_class->notify)
+               sr_class->notify(sr_info->voltdm, status);
+       return IRQ_HANDLED;
+@@ -258,9 +258,7 @@ static int sr_late_init(struct omap_sr *sr_info)
+       struct resource *mem;
+       int ret = 0;
+-      if (sr_class->class_type == SR_CLASS2 &&
+-              sr_class->notify_flags && sr_info->irq) {
+-
++      if (sr_class->notify && sr_class->notify_flags && sr_info->irq) {
+               name = kasprintf(GFP_KERNEL, "sr_%s", sr_info->voltdm->name);
+               if (name == NULL) {
+                       ret = -ENOMEM;
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0010-OMAP3-SR-disable-interrupt-by-default.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0010-OMAP3-SR-disable-interrupt-by-default.patch
new file mode 100644 (file)
index 0000000..da171b0
--- /dev/null
@@ -0,0 +1,37 @@
+From 4aa0f416a44a7053d223f80a8e4be9d0ebdd31ae Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Mon, 14 Feb 2011 12:41:10 +0530
+Subject: [PATCH 10/12] OMAP3+: SR: disable interrupt by default
+
+We will enable and disable interrupt on a need basis in the class
+driver. We need to keep the IRQ disabled by default else the
+forceupdate or vcbypass events could trigger events that we don't
+need/expect to handle.
+
+This is a preparation for SmartReflex AVS class drivers such as
+class 2 and class 1.5 which would need to use interrupts. Existing
+SmartReflex AVS class 3 driver does not require to use interrupts
+and is not impacted by this change.
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 3ee7261..616ef62 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -268,6 +268,7 @@ static int sr_late_init(struct omap_sr *sr_info)
+                               0, name, (void *)sr_info);
+               if (ret)
+                       goto error;
++              disable_irq(sr_info->irq);
+       }
+       if (pdata && pdata->enable_on_init)
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0011-OMAP3-SR-enable-disable-SR-only-on-need.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0011-OMAP3-SR-enable-disable-SR-only-on-need.patch
new file mode 100644 (file)
index 0000000..925bedd
--- /dev/null
@@ -0,0 +1,41 @@
+From aa44b466398b8b104c07ff1b7209509300fc4f47 Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Mon, 14 Feb 2011 21:14:17 +0530
+Subject: [PATCH 11/12] OMAP3+: SR: enable/disable SR only on need
+
+Since we already know the state of the autocomp enablement, we can
+see if the requested state is different from the current state and
+enable/disable SR only on the need basis.
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |   11 +++++++----
+ 1 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 616ef62..3bd9fac 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -807,10 +807,13 @@ static int omap_sr_autocomp_store(void *data, u64 val)
+               return -EINVAL;
+       }
+-      if (!val)
+-              sr_stop_vddautocomp(sr_info);
+-      else
+-              sr_start_vddautocomp(sr_info);
++      /* control enable/disable only if there is a delta in value */
++      if (sr_info->autocomp_active != val) {
++              if (!val)
++                      sr_stop_vddautocomp(sr_info);
++              else
++                      sr_start_vddautocomp(sr_info);
++      }
+       return 0;
+ }
+-- 
+1.6.6.1
+
diff --git a/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0012-OMAP3-SR-fix-cosmetic-indentation.patch b/recipes-kernel/linux/linux-omap-2.6.39/pm/linux-omap-2.6.39-ti-pm/0012-OMAP3-SR-fix-cosmetic-indentation.patch
new file mode 100644 (file)
index 0000000..7241112
--- /dev/null
@@ -0,0 +1,49 @@
+From 0ea922a6c65ea07b685ec05085dd5d3ec4ac87e2 Mon Sep 17 00:00:00 2001
+From: Nishanth Menon <nm@ti.com>
+Date: Mon, 14 Feb 2011 12:33:13 +0530
+Subject: [PATCH 12/12] OMAP3+: SR: fix cosmetic indentation
+
+Error label case seems to have a 2 tab indentation when just 1 is
+necessary.
+
+Signed-off-by: Nishanth Menon <nm@ti.com>
+Signed-off-by: Kevin Hilman <khilman@ti.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ arch/arm/mach-omap2/smartreflex.c |   20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
+index 3bd9fac..2ce2fb7 100644
+--- a/arch/arm/mach-omap2/smartreflex.c
++++ b/arch/arm/mach-omap2/smartreflex.c
+@@ -277,16 +277,16 @@ static int sr_late_init(struct omap_sr *sr_info)
+       return ret;
+ error:
+-              iounmap(sr_info->base);
+-              mem = platform_get_resource(sr_info->pdev, IORESOURCE_MEM, 0);
+-              release_mem_region(mem->start, resource_size(mem));
+-              list_del(&sr_info->node);
+-              dev_err(&sr_info->pdev->dev, "%s: ERROR in registering"
+-                      "interrupt handler. Smartreflex will"
+-                      "not function as desired\n", __func__);
+-              kfree(name);
+-              kfree(sr_info);
+-              return ret;
++      iounmap(sr_info->base);
++      mem = platform_get_resource(sr_info->pdev, IORESOURCE_MEM, 0);
++      release_mem_region(mem->start, resource_size(mem));
++      list_del(&sr_info->node);
++      dev_err(&sr_info->pdev->dev, "%s: ERROR in registering"
++              "interrupt handler. Smartreflex will"
++              "not function as desired\n", __func__);
++      kfree(name);
++      kfree(sr_info);
++      return ret;
+ }
+ static void sr_v1_disable(struct omap_sr *sr)
+-- 
+1.6.6.1
+
index 64ddd4abe4be55879d5ec8fbcf1ed23516be0811..23b1e3975e0c76b12ba3ef1f913b2dbd74c56fd5 100644 (file)
@@ -7,7 +7,7 @@ COMPATIBLE_MACHINE = "(beagleboard)"
 
 # The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
 SRCREV_pn-${PN} = "v2.6.39"
-MACHINE_KERNEL_PR_append = "a"
+MACHINE_KERNEL_PR_append = "b"
 
 FILESPATHPKG_prepend = "linux-omap-2.6.39:"
 
@@ -50,6 +50,19 @@ SRC_URI_append = " \
            file://beagle/0002-OMAP3-beagle-add-support-for-expansionboards.patch \
            file://beagle/0003-OMAP3-beagle-add-MADC-support.patch \
            \
+           file://pm/linux-omap-2.6.39-ti-pm/0001-OMAP3-voltage-remove-spurious-pr_notice-for-debugfs.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0002-OMAP4-PM-remove-redundant-ifdef-CONFIG_PM.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0003-OMAP3-smartreflex-fix-sr_late_init-error-path-in-pro.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0004-OMAP3-smartreflex-request-the-memory-region.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0005-OMAP3-smartreflex-fix-ioremap-leak-on-probe-error.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0006-OMAP3-smartreflex-delete-instance-from-sr_list-on-pr.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0007-OMAP3-smartreflex-delete-debugfs-entries-on-probe-er.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0008-OMAP3-cpuidle-remove-useless-SDP-specific-timings.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0009-OMAP3-SR-make-notify-independent-of-class.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0010-OMAP3-SR-disable-interrupt-by-default.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0011-OMAP3-SR-enable-disable-SR-only-on-need.patch \
+           file://pm/linux-omap-2.6.39-ti-pm/0012-OMAP3-SR-fix-cosmetic-indentation.patch \
+           \
            file://pm/linux-omap-2.6.39-ti-pm-wip-cpufreq/0001-OMAP-CPUfreq-ensure-driver-initializes-after-cpufreq.patch \
            file://pm/linux-omap-2.6.39-ti-pm-wip-cpufreq/0002-OMAP-CPUfreq-ensure-policy-is-fully-initialized.patch \
            file://pm/linux-omap-2.6.39-ti-pm-wip-cpufreq/0003-OMAP3-PM-CPUFreq-driver-for-OMAP3.patch \