linux-omap2 git: add patch to undo merge damage and drop patches that were upstreamed
authorKoen Kooi <koen@openembedded.org>
Thu, 15 May 2008 10:45:00 +0000 (10:45 +0000)
committerKoen Kooi <koen@openembedded.org>
Thu, 15 May 2008 10:45:00 +0000 (10:45 +0000)
packages/linux/linux-omap2-git/beagleboard/0001-This-patch-adds-RTC-support-to-the-omap3-based-beagl.patch [deleted file]
packages/linux/linux-omap2-git/beagleboard/0001-board-omap3beagle-fix-merge-damage-in-RTC-code.patch [new file with mode: 0644]
packages/linux/linux-omap2-git/beagleboard/convert-rwsem-to-rwclock.patch [deleted file]
packages/linux/linux-omap2-git/beagleboard/l2-cache-check.patch [deleted file]
packages/linux/linux-omap2_git.bb

diff --git a/packages/linux/linux-omap2-git/beagleboard/0001-This-patch-adds-RTC-support-to-the-omap3-based-beagl.patch b/packages/linux/linux-omap2-git/beagleboard/0001-This-patch-adds-RTC-support-to-the-omap3-based-beagl.patch
deleted file mode 100644 (file)
index 3f861eb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3f8441b4e1fc297caf5cf712c1bc3f506ec28065 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@openembedded.org>
-Date: Thu, 8 May 2008 18:30:41 +0200
-Subject: [PATCH] This patch adds RTC support to the omap3 based beagleboard
-
-Signed-off-by: Koen Kooi <koen@openembedded.org>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 626f004..0c0cbfc 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -58,13 +58,25 @@ static struct omap_mmc_config omap3beagle_mmc_config __initdata = {
-       },
- };
-+static struct platform_device omap3_beagle_twl4030rtc_device = {
-+      .name           = "twl4030_rtc",
-+      .id             = -1,
-+};
-+
- static struct omap_board_config_kernel omap3_beagle_config[] __initdata = {
-       { OMAP_TAG_UART,        &omap3_beagle_uart_config },
-       { OMAP_TAG_MMC,         &omap3beagle_mmc_config },
- };
-+static struct platform_device *omap3_beagle_devices[] __initdata = {
-+#ifdef CONFIG_RTC_DRV_TWL4030
-+      &omap3_beagle_twl4030rtc_device,
-+#endif
-+};
-+
- static void __init omap3_beagle_init(void)
- {
-+      platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices));
-       omap_board_config = omap3_beagle_config;
-       omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
-       omap_serial_init();
--- 
-1.5.4.3
-
diff --git a/packages/linux/linux-omap2-git/beagleboard/0001-board-omap3beagle-fix-merge-damage-in-RTC-code.patch b/packages/linux/linux-omap2-git/beagleboard/0001-board-omap3beagle-fix-merge-damage-in-RTC-code.patch
new file mode 100644 (file)
index 0000000..55e9bf7
--- /dev/null
@@ -0,0 +1,36 @@
+From eddf57fb9748791e021ef550d651cc72c48add5c Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@openembedded.org>
+Date: Thu, 15 May 2008 09:32:23 +0200
+Subject: [PATCH] ARM: OMAP: board-omap3beagle: fix merge-damage in RTC code
+
+This patch fixes the merge-damage in the beagleboard RTC code
+
+Signed-off-by: Koen Kooi <koen@openembedded.org>
+---
+ arch/arm/mach-omap2/board-omap3beagle.c |    3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index 0c15ca0..0c0cbfc 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -76,6 +76,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
+ static void __init omap3_beagle_init(void)
+ {
++      platform_add_devices(omap3_beagle_devices, ARRAY_SIZE(omap3_beagle_devices));
+       omap_board_config = omap3_beagle_config;
+       omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
+       omap_serial_init();
+@@ -88,8 +89,6 @@ arch_initcall(omap3_beagle_i2c_init);
+ static void __init omap3_beagle_map_io(void)
+ {
+-      platform_add_devices(omap3_beagle_devices,
+-                              ARRAY_SIZE(omap3_beagle_devices));
+       omap2_set_globals_343x();
+       omap2_map_common_io();
+ }
+-- 
+1.5.4.3
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/convert-rwsem-to-rwclock.patch b/packages/linux/linux-omap2-git/beagleboard/convert-rwsem-to-rwclock.patch
deleted file mode 100644 (file)
index 311260d..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-The generic rwsem implementation of down_read() and down_write() does not\r
-save and restore interrupt state.  This causes powerdomain code to\r
-inadvertently enable interrupts early in the boot process, causing\r
-init/main.c to complain.   This patch converts powerdomain locking to\r
-r-w spinlocks instead.\r
-\r
-I'm also curious to know if this fixes the BeagleBoard boot problem.\r
-\r
-Signed-off-by: Paul Walmsley <paul@pwsan.com>\r
----\r
-\r
- arch/arm/mach-omap2/powerdomain.c |   46 ++++++++++++++++++++++---------------\r
- 1 files changed, 27 insertions(+), 19 deletions(-)\r
-\r
-\r
-diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c\r
-index 939efe4..0a6caaf 100644\r
---- a/arch/arm/mach-omap2/powerdomain.c\r
-+++ b/arch/arm/mach-omap2/powerdomain.c\r
-@@ -18,7 +18,7 @@\r
- #include <linux/module.h>\r
- #include <linux/types.h>\r
- #include <linux/delay.h>\r
--#include <linux/rwsem.h>\r
-+#include <linux/spinlock.h>\r
- #include <linux/list.h>\r
- #include <linux/errno.h>\r
- #include <linux/err.h>\r
-@@ -38,10 +38,10 @@\r
- static LIST_HEAD(pwrdm_list);\r
\r
- /*\r
-- * pwrdm_rwsem protects pwrdm_list add and del ops - also reused to\r
-+ * pwrdm_rwlock protects pwrdm_list add and del ops - also reused to\r
-  * protect pwrdm_clkdms[] during clkdm add/del ops\r
-  */\r
--static DECLARE_RWSEM(pwrdm_rwsem);\r
-+static DEFINE_RWLOCK(pwrdm_rwlock);\r
\r
\r
- /* Private functions */\r
-@@ -131,6 +131,7 @@ void pwrdm_init(struct powerdomain **pwrdm_list)\r
-  */\r
- int pwrdm_register(struct powerdomain *pwrdm)\r
- {\r
-+      unsigned long flags;\r
-       int ret = -EINVAL;\r
\r
-       if (!pwrdm)\r
-@@ -139,7 +140,7 @@ int pwrdm_register(struct powerdomain *pwrdm)\r
-       if (!omap_chip_is(pwrdm->omap_chip))\r
-               return -EINVAL;\r
\r
--      down_write(&pwrdm_rwsem);\r
-+      write_lock_irqsave(&pwrdm_rwlock, flags);\r
-       if (_pwrdm_lookup(pwrdm->name)) {\r
-               ret = -EEXIST;\r
-               goto pr_unlock;\r
-@@ -151,7 +152,7 @@ int pwrdm_register(struct powerdomain *pwrdm)\r
-       ret = 0;\r
\r
- pr_unlock:\r
--      up_write(&pwrdm_rwsem);\r
-+      write_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return ret;\r
- }\r
-@@ -165,12 +166,14 @@ pr_unlock:\r
-  */\r
- int pwrdm_unregister(struct powerdomain *pwrdm)\r
- {\r
-+      unsigned long flags;\r
-+\r
-       if (!pwrdm)\r
-               return -EINVAL;\r
\r
--      down_write(&pwrdm_rwsem);\r
-+      write_lock_irqsave(&pwrdm_rwlock, flags);\r
-       list_del(&pwrdm->node);\r
--      up_write(&pwrdm_rwsem);\r
-+      write_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       pr_debug("powerdomain: unregistered %s\n", pwrdm->name);\r
\r
-@@ -187,13 +190,14 @@ int pwrdm_unregister(struct powerdomain *pwrdm)\r
- struct powerdomain *pwrdm_lookup(const char *name)\r
- {\r
-       struct powerdomain *pwrdm;\r
-+      unsigned long flags;\r
\r
-       if (!name)\r
-               return NULL;\r
\r
--      down_read(&pwrdm_rwsem);\r
-+      read_lock_irqsave(&pwrdm_rwlock, flags);\r
-       pwrdm = _pwrdm_lookup(name);\r
--      up_read(&pwrdm_rwsem);\r
-+      read_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return pwrdm;\r
- }\r
-@@ -204,7 +208,7 @@ struct powerdomain *pwrdm_lookup(const char *name)\r
-  *\r
-  * Call the supplied function for each registered powerdomain.  The\r
-  * callback function can return anything but 0 to bail out early from\r
-- * the iterator.  The callback function is called with the pwrdm_rwsem\r
-+ * the iterator.  The callback function is called with the pwrdm_rwlock\r
-  * held for reading, so no powerdomain structure manipulation\r
-  * functions should be called from the callback, although hardware\r
-  * powerdomain control functions are fine.  Returns the last return\r
-@@ -215,18 +219,19 @@ struct powerdomain *pwrdm_lookup(const char *name)\r
- int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm))\r
- {\r
-       struct powerdomain *temp_pwrdm;\r
-+      unsigned long flags;\r
-       int ret = 0;\r
\r
-       if (!fn)\r
-               return -EINVAL;\r
\r
--      down_read(&pwrdm_rwsem);\r
-+      read_lock_irqsave(&pwrdm_rwlock, flags);\r
-       list_for_each_entry(temp_pwrdm, &pwrdm_list, node) {\r
-               ret = (*fn)(temp_pwrdm);\r
-               if (ret)\r
-                       break;\r
-       }\r
--      up_read(&pwrdm_rwsem);\r
-+      read_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return ret;\r
- }\r
-@@ -243,6 +248,7 @@ int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm))\r
-  */\r
- int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
- {\r
-+      unsigned long flags;\r
-       int i;\r
-       int ret = -EINVAL;\r
\r
-@@ -252,7 +258,7 @@ int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
-       pr_debug("powerdomain: associating clockdomain %s with powerdomain "\r
-                "%s\n", clkdm->name, pwrdm->name);\r
\r
--      down_write(&pwrdm_rwsem);\r
-+      write_lock_irqsave(&pwrdm_rwlock, flags);\r
\r
-       for (i = 0; i < PWRDM_MAX_CLKDMS; i++) {\r
-               if (!pwrdm->pwrdm_clkdms[i])\r
-@@ -278,7 +284,7 @@ int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
-       ret = 0;\r
\r
- pac_exit:\r
--      up_write(&pwrdm_rwsem);\r
-+      write_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return ret;\r
- }\r
-@@ -295,6 +301,7 @@ pac_exit:\r
-  */\r
- int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
- {\r
-+      unsigned long flags;\r
-       int ret = -EINVAL;\r
-       int i;\r
\r
-@@ -304,7 +311,7 @@ int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
-       pr_debug("powerdomain: dissociating clockdomain %s from powerdomain "\r
-                "%s\n", clkdm->name, pwrdm->name);\r
\r
--      down_write(&pwrdm_rwsem);\r
-+      write_lock_irqsave(&pwrdm_rwlock, flags);\r
\r
-       for (i = 0; i < PWRDM_MAX_CLKDMS; i++)\r
-               if (pwrdm->pwrdm_clkdms[i] == clkdm)\r
-@@ -322,7 +329,7 @@ int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm)\r
-       ret = 0;\r
\r
- pdc_exit:\r
--      up_write(&pwrdm_rwsem);\r
-+      write_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return ret;\r
- }\r
-@@ -335,7 +342,7 @@ pdc_exit:\r
-  * Call the supplied function for each clockdomain in the powerdomain\r
-  * 'pwrdm'.  The callback function can return anything but 0 to bail\r
-  * out early from the iterator.  The callback function is called with\r
-- * the pwrdm_rwsem held for reading, so no powerdomain structure\r
-+ * the pwrdm_rwlock held for reading, so no powerdomain structure\r
-  * manipulation functions should be called from the callback, although\r
-  * hardware powerdomain control functions are fine.  Returns -EINVAL\r
-  * if presented with invalid pointers; or passes along the last return\r
-@@ -346,18 +353,19 @@ int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,\r
-                        int (*fn)(struct powerdomain *pwrdm,\r
-                                  struct clockdomain *clkdm))\r
- {\r
-+      unsigned long flags;\r
-       int ret = 0;\r
-       int i;\r
\r
-       if (!fn)\r
-               return -EINVAL;\r
\r
--      down_read(&pwrdm_rwsem);\r
-+      read_lock_irqsave(&pwrdm_rwlock, flags);\r
\r
-       for (i = 0; i < PWRDM_MAX_CLKDMS && !ret; i++)\r
-               ret = (*fn)(pwrdm, pwrdm->pwrdm_clkdms[i]);\r
\r
--      up_read(&pwrdm_rwsem);\r
-+      read_unlock_irqrestore(&pwrdm_rwlock, flags);\r
\r
-       return ret;\r
- }\r
---\r
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in\r
-the body of a message to majordomo@vger.kernel.org\r
-More majordomo info at  http://vger.kernel.org/majordomo-info.html\r
-\r
diff --git a/packages/linux/linux-omap2-git/beagleboard/l2-cache-check.patch b/packages/linux/linux-omap2-git/beagleboard/l2-cache-check.patch
deleted file mode 100644 (file)
index d81f038..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Content-Type: text/plain; charset=ISO-8859-1; format=flowed
-Content-Transfer-Encoding: 7bit
-
-
-Enabling L2 cache of Cortex-A8 based OMAP3 has to be done by 
-bootloader. Check if this is done and warn if not.
-
-Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
-
-----
-
-Changes in v2: Fix a typo.
-
-Index: linux-beagle/arch/arm/mach-omap2/id.c
-===================================================================
---- linux-beagle.orig/arch/arm/mach-omap2/id.c
-+++ linux-beagle/arch/arm/mach-omap2/id.c
-@@ -267,3 +267,26 @@ void __init omap2_check_revision(void)
- }
-+#ifdef CONFIG_ARCH_OMAP3
-+/*
-+ * OMAP3 has L2 cache which has to be enabled by bootloader.
-+ */
-+static int __init omap3_check_l2cache(void)
-+{
-+      u32 val;
-+
-+      /* Get CP15 AUX register, bit 1 enabled indicates L2 cache is on */
-+      asm volatile("mrc p15, 0, %0, c1, c0, 1":"=r" (val));
-+
-+      if ((val & 0x2) == 0) {
-+              printk(KERN_WARNING "Warning: L2 cache not enabled. Check "
-+                     "your bootloader. L2 off results in performance loss\n");
-+      } else {
-+              pr_info("OMAP3 L2 cache enabled");
-+      }
-+
-+      return 0;
-+}
-+
-+arch_initcall(omap3_check_l2cache);
-+#endif /* CONFIG_ARCH_OMAP3 */
-
index aaa3c4a..356d266 100644 (file)
@@ -5,7 +5,7 @@ FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-omap2-git/${MA
 SRCREV = "74c89552b4a5f9b5b066f74fa265248f9b5d3f1d"
 
 PV = "2.6.25+2.6.26-rc2+git${SRCREV}"
-PR = "r12"
+PR = "r13"
 
 
 SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
@@ -13,7 +13,8 @@ SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
 
 SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \
                               file://usb-timout.patch;patch=1 \
-                              file://l2-cache.patch;patch=1 \  
+                              file://l2-cache.patch;patch=1 \
+                              file://0001-board-omap3beagle-fix-merge-damage-in-RTC-code.patch;patch=1 \       
                               file://0001-omap3beagle-add-driver-to-turn-on-the-TFP410-framer.patch;patch=1 \
 "