linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] Recently pending ARM fixes
@ 2012-01-19 15:31 Russell King - ARM Linux
  2012-01-19 15:32 ` [PATCH 01/11] Revert "ARM: sa1100: clean up of the clock support" Russell King - ARM Linux
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:31 UTC (permalink / raw)
  To: linux-arm-kernel

Below is a summary of a new set of ARM fixes which I've queued up
today (so far).  The big one is the revert of the changes to
rtc-sa1100.c, which completely broke the driver.  Of the remainder,
the bulk are sorting out a few section mismatch warnings.

The two remaining patches fix a build error with collie and some
RCU problems seen on SMP platforms, and two other minor patches.

Most people won't have much interest in this set of fixes, except
for the rcu patch, so I probably won't push this to Linus for a
few days (which means the number could grow.)

 arch/arm/Kconfig                  |    2 +-
 arch/arm/kernel/setup.c           |    3 +-
 arch/arm/kernel/smp.c             |   10 +-
 arch/arm/mach-pxa/devices.c       |   20 ---
 arch/arm/mach-pxa/pxa25x.c        |    2 -
 arch/arm/mach-pxa/pxa27x.c        |    2 -
 arch/arm/mach-pxa/pxa300.c        |    1 -
 arch/arm/mach-pxa/pxa320.c        |    1 -
 arch/arm/mach-pxa/pxa3xx.c        |    1 -
 arch/arm/mach-pxa/pxa95x.c        |    1 -
 arch/arm/mach-sa1100/clock.c      |   91 +++--------
 arch/arm/mach-sa1100/collie.c     |    5 +-
 arch/arm/mach-sa1100/cpu-sa1100.c |    2 +-
 arch/arm/mach-sa1100/generic.c    |   20 ---
 arch/arm/mach-vexpress/ct-ca9x4.c |    4 +-
 arch/arm/mm/init.c                |    2 +-
 drivers/rtc/Kconfig               |    2 +-
 drivers/rtc/rtc-sa1100.c          |  295 ++++++++++++++-----------------------
 18 files changed, 155 insertions(+), 309 deletions(-)

Fabio Estevam (1):
      ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file

Kees Cook (1):
      ARM: 7279/1: standardize /proc/iomem "Kernel code" name

Russell King (9):
      Revert "ARM: sa1100: clean up of the clock support"
      Revert "ARM: pxa: add dummy clock for sa1100-rtc"
      Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
      Revert "RTC: sa1100: remove redundant code of setting alarm"
      ARM: sa11x0: fix collie build error
      ARM: sa11x0: fix section mismatch in cpu-sa1100.c
      ARM: fix a section mismatch warning with our use of memblock
      ARM: vexpress: fix two section mismatch warnings
      ARM: fix rcu stalls on SMP platforms

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

* [PATCH 01/11] Revert "ARM: sa1100: clean up of the clock support"
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
@ 2012-01-19 15:32 ` Russell King - ARM Linux
  2012-01-19 15:33 ` [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc" Russell King - ARM Linux
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:32 UTC (permalink / raw)
  To: linux-arm-kernel

This reverts commit edf3ff5bac2582b57de4e7c6569fee5d7c1c0a42.

This revert is necessary to revert the broken "RTC: sa1100:
support sa1100, pxa and mmp soc families" change.
---
 arch/arm/Kconfig             |    2 +-
 arch/arm/mach-sa1100/clock.c |   91 +++++++++++------------------------------
 2 files changed, 26 insertions(+), 67 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 24626b0..bb68e65 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -754,7 +754,7 @@ config ARCH_SA1100
 	select ARCH_HAS_CPUFREQ
 	select CPU_FREQ
 	select GENERIC_CLOCKEVENTS
-	select CLKDEV_LOOKUP
+	select HAVE_CLK
 	select HAVE_SCHED_CLOCK
 	select TICK_ONESHOT
 	select ARCH_REQUIRE_GPIOLIB
diff --git a/arch/arm/mach-sa1100/clock.c b/arch/arm/mach-sa1100/clock.c
index d6df9f6..dab3c63 100644
--- a/arch/arm/mach-sa1100/clock.c
+++ b/arch/arm/mach-sa1100/clock.c
@@ -11,39 +11,17 @@
 #include <linux/clk.h>
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
-#include <linux/io.h>
-#include <linux/clkdev.h>
 
 #include <mach/hardware.h>
 
-struct clkops {
-	void			(*enable)(struct clk *);
-	void			(*disable)(struct clk *);
-	unsigned long		(*getrate)(struct clk *);
-};
-
+/*
+ * Very simple clock implementation - we only have one clock to deal with.
+ */
 struct clk {
-	const struct clkops	*ops;
-	unsigned long		rate;
 	unsigned int		enabled;
 };
 
-#define INIT_CLKREG(_clk, _devname, _conname)		\
-	{						\
-		.clk		= _clk,			\
-		.dev_id		= _devname,		\
-		.con_id		= _conname,		\
-	}
-
-#define DEFINE_CLK(_name, _ops, _rate)			\
-struct clk clk_##_name = {				\
-		.ops	= _ops,				\
-		.rate	= _rate,			\
-	}
-
-static DEFINE_SPINLOCK(clocks_lock);
-
-static void clk_gpio27_enable(struct clk *clk)
+static void clk_gpio27_enable(void)
 {
 	/*
 	 * First, set up the 3.6864MHz clock on GPIO 27 for the SA-1111:
@@ -54,22 +32,38 @@ static void clk_gpio27_enable(struct clk *clk)
 	TUCR = TUCR_3_6864MHz;
 }
 
-static void clk_gpio27_disable(struct clk *clk)
+static void clk_gpio27_disable(void)
 {
 	TUCR = 0;
 	GPDR &= ~GPIO_32_768kHz;
 	GAFR &= ~GPIO_32_768kHz;
 }
 
+static struct clk clk_gpio27;
+
+static DEFINE_SPINLOCK(clocks_lock);
+
+struct clk *clk_get(struct device *dev, const char *id)
+{
+	const char *devname = dev_name(dev);
+
+	return strcmp(devname, "sa1111.0") ? ERR_PTR(-ENOENT) : &clk_gpio27;
+}
+EXPORT_SYMBOL(clk_get);
+
+void clk_put(struct clk *clk)
+{
+}
+EXPORT_SYMBOL(clk_put);
+
 int clk_enable(struct clk *clk)
 {
 	unsigned long flags;
 
 	spin_lock_irqsave(&clocks_lock, flags);
 	if (clk->enabled++ == 0)
-		clk->ops->enable(clk);
+		clk_gpio27_enable();
 	spin_unlock_irqrestore(&clocks_lock, flags);
-
 	return 0;
 }
 EXPORT_SYMBOL(clk_enable);
@@ -82,48 +76,13 @@ void clk_disable(struct clk *clk)
 
 	spin_lock_irqsave(&clocks_lock, flags);
 	if (--clk->enabled == 0)
-		clk->ops->disable(clk);
+		clk_gpio27_disable();
 	spin_unlock_irqrestore(&clocks_lock, flags);
 }
 EXPORT_SYMBOL(clk_disable);
 
 unsigned long clk_get_rate(struct clk *clk)
 {
-	unsigned long rate;
-
-	rate = clk->rate;
-	if (clk->ops->getrate)
-		rate = clk->ops->getrate(clk);
-
-	return rate;
+	return 3686400;
 }
 EXPORT_SYMBOL(clk_get_rate);
-
-const struct clkops clk_gpio27_ops = {
-	.enable		= clk_gpio27_enable,
-	.disable	= clk_gpio27_disable,
-};
-
-static void clk_dummy_enable(struct clk *clk) { }
-static void clk_dummy_disable(struct clk *clk) { }
-
-const struct clkops clk_dummy_ops = {
-	.enable		= clk_dummy_enable,
-	.disable	= clk_dummy_disable,
-};
-
-static DEFINE_CLK(gpio27, &clk_gpio27_ops, 3686400);
-static DEFINE_CLK(dummy, &clk_dummy_ops, 0);
-
-static struct clk_lookup sa11xx_clkregs[] = {
-	INIT_CLKREG(&clk_gpio27, "sa1111.0", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
-};
-
-static int __init sa11xx_clk_init(void)
-{
-	clkdev_add_table(sa11xx_clkregs, ARRAY_SIZE(sa11xx_clkregs));
-	return 0;
-}
-
-postcore_initcall(sa11xx_clk_init);
-- 
1.7.4.4

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
  2012-01-19 15:32 ` [PATCH 01/11] Revert "ARM: sa1100: clean up of the clock support" Russell King - ARM Linux
@ 2012-01-19 15:33 ` Russell King - ARM Linux
  2012-02-11 19:07   ` Jonathan Cameron
  2012-01-19 15:33 ` [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" Russell King - ARM Linux
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:33 UTC (permalink / raw)
  To: linux-arm-kernel

This reverts commit 7557c175f60d8d40baf16b22caf79beadef8f081.

This revert is necessary to revert the broken "RTC: sa1100:
support sa1100, pxa and mmp soc families" change.
---
 arch/arm/mach-pxa/pxa25x.c |    2 --
 arch/arm/mach-pxa/pxa27x.c |    2 --
 arch/arm/mach-pxa/pxa300.c |    1 -
 arch/arm/mach-pxa/pxa320.c |    1 -
 arch/arm/mach-pxa/pxa3xx.c |    1 -
 arch/arm/mach-pxa/pxa95x.c |    1 -
 6 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index adf058f..91e4f6c 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -209,8 +209,6 @@ static struct clk_lookup pxa25x_clkregs[] = {
 	INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
 	INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
 	INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
-	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
 static struct clk_lookup pxa25x_hwuart_clkreg =
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 180bd86..aed6cbc 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -230,8 +230,6 @@ static struct clk_lookup pxa27x_clkregs[] = {
 	INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
 	INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
 	INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
-	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
 #ifdef CONFIG_PM
diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
index 0388eda..40bb165 100644
--- a/arch/arm/mach-pxa/pxa300.c
+++ b/arch/arm/mach-pxa/pxa300.c
@@ -89,7 +89,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA300_GCU, 0, 0);
 static struct clk_lookup common_clkregs[] = {
 	INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL),
 	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
 static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0);
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
index d487e1f..8d614ec 100644
--- a/arch/arm/mach-pxa/pxa320.c
+++ b/arch/arm/mach-pxa/pxa320.c
@@ -83,7 +83,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA320_GCU, 0, 0);
 static struct clk_lookup pxa320_clkregs[] = {
 	INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL),
 	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 };
 
 static int __init pxa320_init(void)
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index f107c71..4f402af 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -67,7 +67,6 @@ static struct clk_lookup pxa3xx_clkregs[] = {
 	INIT_CLKREG(&clk_pxa3xx_pout, NULL, "CLK_POUT"),
 	/* Power I2C clock is always on */
 	INIT_CLKREG(&clk_dummy, "pxa3xx-pwri2c.1", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 	INIT_CLKREG(&clk_pxa3xx_lcd, "pxa2xx-fb", NULL),
 	INIT_CLKREG(&clk_pxa3xx_camera, NULL, "CAMCLK"),
 	INIT_CLKREG(&clk_pxa3xx_ac97, NULL, "AC97CLK"),
diff --git a/arch/arm/mach-pxa/pxa95x.c b/arch/arm/mach-pxa/pxa95x.c
index fccc644..d082a58 100644
--- a/arch/arm/mach-pxa/pxa95x.c
+++ b/arch/arm/mach-pxa/pxa95x.c
@@ -217,7 +217,6 @@ static struct clk_lookup pxa95x_clkregs[] = {
 	INIT_CLKREG(&clk_pxa95x_pout, NULL, "CLK_POUT"),
 	/* Power I2C clock is always on */
 	INIT_CLKREG(&clk_dummy, "pxa3xx-pwri2c.1", NULL),
-	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
 	INIT_CLKREG(&clk_pxa95x_lcd, "pxa2xx-fb", NULL),
 	INIT_CLKREG(&clk_pxa95x_ffuart, "pxa2xx-uart.0", NULL),
 	INIT_CLKREG(&clk_pxa95x_btuart, "pxa2xx-uart.1", NULL),
-- 
1.7.4.4

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
  2012-01-19 15:32 ` [PATCH 01/11] Revert "ARM: sa1100: clean up of the clock support" Russell King - ARM Linux
  2012-01-19 15:33 ` [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc" Russell King - ARM Linux
@ 2012-01-19 15:33 ` Russell King - ARM Linux
  2012-01-19 17:11   ` Nicolas Pitre
  2012-01-19 15:34 ` [PATCH 05/11] ARM: sa11x0: fix collie build error Russell King - ARM Linux
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:33 UTC (permalink / raw)
  To: linux-arm-kernel

This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.

The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
hint that something is wrong are these compiler warnings:

drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
                 from drivers/rtc/rtc-sa1100.c:35:
arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition

and the second problem, which is far more severe, are the different
register layouts, resulting in the wrong registers being read on
SA11x0 platforms.  This patch adds:

but the SA11x0 registers are:
---
 arch/arm/mach-pxa/devices.c    |   20 ---
 arch/arm/mach-sa1100/generic.c |   20 ---
 drivers/rtc/Kconfig            |    2 +-
 drivers/rtc/rtc-sa1100.c       |  256 ++++++++++++---------------------------
 4 files changed, 80 insertions(+), 218 deletions(-)

diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 18fd177..5bc1312 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -415,29 +415,9 @@ static struct resource pxa_rtc_resources[] = {
 	},
 };
 
-static struct resource sa1100_rtc_resources[] = {
-	[0] = {
-		.start  = 0x40900000,
-		.end	= 0x409000ff,
-		.flags  = IORESOURCE_MEM,
-	},
-	[1] = {
-		.start  = IRQ_RTC1Hz,
-		.end    = IRQ_RTC1Hz,
-		.flags  = IORESOURCE_IRQ,
-	},
-	[2] = {
-		.start  = IRQ_RTCAlrm,
-		.end    = IRQ_RTCAlrm,
-		.flags  = IORESOURCE_IRQ,
-	},
-};
-
 struct platform_device sa1100_device_rtc = {
 	.name		= "sa1100-rtc",
 	.id		= -1,
-	.num_resources  = ARRAY_SIZE(sa1100_rtc_resources),
-	.resource       = sa1100_rtc_resources,
 };
 
 struct platform_device pxa_device_rtc = {
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index e3a28ca..a7c0df6 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -350,29 +350,9 @@ void sa11x0_register_irda(struct irda_platform_data *irda)
 	sa11x0_register_device(&sa11x0ir_device, irda);
 }
 
-static struct resource sa11x0rtc_resources[] = {
-	[0] = {
-		.start	= 0x90010000,
-		.end	= 0x900100ff,
-		.flags	= IORESOURCE_MEM,
-	},
-	[1] = {
-		.start	= IRQ_RTC1Hz,
-		.end	= IRQ_RTC1Hz,
-		.flags	= IORESOURCE_IRQ,
-	},
-	[2] = {
-		.start	= IRQ_RTCAlrm,
-		.end	= IRQ_RTCAlrm,
-		.flags	= IORESOURCE_IRQ,
-	},
-};
-
 static struct platform_device sa11x0rtc_device = {
 	.name		= "sa1100-rtc",
 	.id		= -1,
-	.resource	= sa11x0rtc_resources,
-	.num_resources	= ARRAY_SIZE(sa11x0rtc_resources),
 };
 
 static struct platform_device *sa11x0_devices[] __initdata = {
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index e19a403..3a125b8 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -774,7 +774,7 @@ config RTC_DRV_EP93XX
 
 config RTC_DRV_SA1100
 	tristate "SA11x0/PXA2xx"
-	depends on ARCH_SA1100 || ARCH_PXA || ARCH_MMP
+	depends on ARCH_SA1100 || ARCH_PXA
 	help
 	  If you say Y here you will get access to the real time clock
 	  built into your SA11x0 or PXA2xx CPU.
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 4595d3e..9683daf 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -27,42 +27,24 @@
 #include <linux/init.h>
 #include <linux/fs.h>
 #include <linux/interrupt.h>
+#include <linux/string.h>
 #include <linux/pm.h>
-#include <linux/slab.h>
-#include <linux/clk.h>
-#include <linux/io.h>
+#include <linux/bitops.h>
 
 #include <mach/hardware.h>
 #include <asm/irq.h>
 
+#ifdef CONFIG_ARCH_PXA
+#include <mach/regs-rtc.h>
+#endif
+
 #define RTC_DEF_DIVIDER		(32768 - 1)
 #define RTC_DEF_TRIM		0
-#define RTC_FREQ		1024
-
-#define RCNR		0x00	/* RTC Count Register */
-#define RTAR		0x04	/* RTC Alarm Register */
-#define RTSR		0x08	/* RTC Status Register */
-#define RTTR		0x0c	/* RTC Timer Trim Register */
-
-#define RTSR_HZE	(1 << 3)	/* HZ interrupt enable */
-#define RTSR_ALE	(1 << 2)	/* RTC alarm interrupt enable */
-#define RTSR_HZ		(1 << 1)	/* HZ rising-edge detected */
-#define RTSR_AL		(1 << 0)	/* RTC alarm detected */
-
-#define rtc_readl(sa1100_rtc, reg)	\
-	readl_relaxed((sa1100_rtc)->base + (reg))
-#define rtc_writel(sa1100_rtc, reg, value)	\
-	writel_relaxed((value), (sa1100_rtc)->base + (reg))
-
-struct sa1100_rtc {
-	struct resource		*ress;
-	void __iomem		*base;
-	struct clk		*clk;
-	int			irq_1Hz;
-	int			irq_Alrm;
-	struct rtc_device	*rtc;
-	spinlock_t		lock;		/* Protects this structure */
-};
+
+static const unsigned long RTC_FREQ = 1024;
+static struct rtc_time rtc_alarm;
+static DEFINE_SPINLOCK(sa1100_rtc_lock);
+
 /*
  * Calculate the next alarm time given the requested alarm time mask
  * and the current time.
@@ -93,23 +75,22 @@ static void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now,
 static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id)
 {
 	struct platform_device *pdev = to_platform_device(dev_id);
-	struct sa1100_rtc *sa1100_rtc = platform_get_drvdata(pdev);
+	struct rtc_device *rtc = platform_get_drvdata(pdev);
 	unsigned int rtsr;
 	unsigned long events = 0;
 
-	spin_lock(&sa1100_rtc->lock);
+	spin_lock(&sa1100_rtc_lock);
 
+	rtsr = RTSR;
 	/* clear interrupt sources */
-	rtsr = rtc_readl(sa1100_rtc, RTSR);
-	rtc_writel(sa1100_rtc, RTSR, 0);
-
+	RTSR = 0;
 	/* Fix for a nasty initialization problem the in SA11xx RTSR register.
 	 * See also the comments in sa1100_rtc_probe(). */
 	if (rtsr & (RTSR_ALE | RTSR_HZE)) {
 		/* This is the original code, before there was the if test
 		 * above. This code does not clear interrupts that were not
 		 * enabled. */
-		rtc_writel(sa1100_rtc, RTSR, (RTSR_AL | RTSR_HZ) & (rtsr >> 2));
+		RTSR = (RTSR_AL | RTSR_HZ) & (rtsr >> 2);
 	} else {
 		/* For some reason, it is possible to enter this routine
 		 * without interruptions enabled, it has been tested with
@@ -118,13 +99,13 @@ static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id)
 		 * This situation leads to an infinite "loop" of interrupt
 		 * routine calling and as a result the processor seems to
 		 * lock on its first call to open(). */
-		rtc_writel(sa1100_rtc, RTSR, (RTSR_AL | RTSR_HZ));
+		RTSR = RTSR_AL | RTSR_HZ;
 	}
 
 	/* clear alarm interrupt if it has occurred */
 	if (rtsr & RTSR_AL)
 		rtsr &= ~RTSR_ALE;
-	rtc_writel(sa1100_rtc, RTSR, rtsr & (RTSR_ALE | RTSR_HZE));
+	RTSR = rtsr & (RTSR_ALE | RTSR_HZE);
 
 	/* update irq data & counter */
 	if (rtsr & RTSR_AL)
@@ -132,100 +113,86 @@ static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id)
 	if (rtsr & RTSR_HZ)
 		events |= RTC_UF | RTC_IRQF;
 
-	rtc_update_irq(sa1100_rtc->rtc, 1, events);
+	rtc_update_irq(rtc, 1, events);
 
-	spin_unlock(&sa1100_rtc->lock);
+	spin_unlock(&sa1100_rtc_lock);
 
 	return IRQ_HANDLED;
 }
 
 static int sa1100_rtc_open(struct device *dev)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
 	int ret;
+	struct platform_device *plat_dev = to_platform_device(dev);
+	struct rtc_device *rtc = platform_get_drvdata(plat_dev);
 
-	ret = request_irq(sa1100_rtc->irq_1Hz, sa1100_rtc_interrupt,
-				IRQF_DISABLED, "rtc 1Hz", dev);
+	ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, IRQF_DISABLED,
+		"rtc 1Hz", dev);
 	if (ret) {
-		dev_err(dev, "IRQ %d already in use.\n", sa1100_rtc->irq_1Hz);
+		dev_err(dev, "IRQ %d already in use.\n", IRQ_RTC1Hz);
 		goto fail_ui;
 	}
-	ret = request_irq(sa1100_rtc->irq_Alrm, sa1100_rtc_interrupt,
-				IRQF_DISABLED, "rtc Alrm", dev);
+	ret = request_irq(IRQ_RTCAlrm, sa1100_rtc_interrupt, IRQF_DISABLED,
+		"rtc Alrm", dev);
 	if (ret) {
-		dev_err(dev, "IRQ %d already in use.\n", sa1100_rtc->irq_Alrm);
+		dev_err(dev, "IRQ %d already in use.\n", IRQ_RTCAlrm);
 		goto fail_ai;
 	}
-	sa1100_rtc->rtc->max_user_freq = RTC_FREQ;
-	rtc_irq_set_freq(sa1100_rtc->rtc, NULL, RTC_FREQ);
+	rtc->max_user_freq = RTC_FREQ;
+	rtc_irq_set_freq(rtc, NULL, RTC_FREQ);
 
 	return 0;
 
  fail_ai:
-	free_irq(sa1100_rtc->irq_1Hz, dev);
+	free_irq(IRQ_RTC1Hz, dev);
  fail_ui:
 	return ret;
 }
 
 static void sa1100_rtc_release(struct device *dev)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
+	spin_lock_irq(&sa1100_rtc_lock);
+	RTSR = 0;
+	spin_unlock_irq(&sa1100_rtc_lock);
 
-	spin_lock_irq(&sa1100_rtc->lock);
-	rtc_writel(sa1100_rtc, RTSR, 0);
-	spin_unlock_irq(&sa1100_rtc->lock);
-
-	free_irq(sa1100_rtc->irq_Alrm, dev);
-	free_irq(sa1100_rtc->irq_1Hz, dev);
+	free_irq(IRQ_RTCAlrm, dev);
+	free_irq(IRQ_RTC1Hz, dev);
 }
 
 static int sa1100_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
-	unsigned int rtsr;
-
-	spin_lock_irq(&sa1100_rtc->lock);
-
-	rtsr = rtc_readl(sa1100_rtc, RTSR);
+	spin_lock_irq(&sa1100_rtc_lock);
 	if (enabled)
-		rtsr |= RTSR_ALE;
+		RTSR |= RTSR_ALE;
 	else
-		rtsr &= ~RTSR_ALE;
-	rtc_writel(sa1100_rtc, RTSR, rtsr);
-
-	spin_unlock_irq(&sa1100_rtc->lock);
+		RTSR &= ~RTSR_ALE;
+	spin_unlock_irq(&sa1100_rtc_lock);
 	return 0;
 }
 
 static int sa1100_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
-
-	rtc_time_to_tm(rtc_readl(sa1100_rtc, RCNR), tm);
+	rtc_time_to_tm(RCNR, tm);
 	return 0;
 }
 
 static int sa1100_rtc_set_time(struct device *dev, struct rtc_time *tm)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
 	unsigned long time;
 	int ret;
 
 	ret = rtc_tm_to_time(tm, &time);
 	if (ret == 0)
-		rtc_writel(sa1100_rtc, RCNR, time);
+		RCNR = time;
 	return ret;
 }
 
 static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
-	unsigned long time;
-	unsigned int rtsr;
+	u32	rtsr;
 
-	time = rtc_readl(sa1100_rtc, RCNR);
-	rtc_time_to_tm(time, &alrm->time);
-	rtsr = rtc_readl(sa1100_rtc, RTSR);
+	memcpy(&alrm->time, &rtc_alarm, sizeof(struct rtc_time));
+	rtsr = RTSR;
 	alrm->enabled = (rtsr & RTSR_ALE) ? 1 : 0;
 	alrm->pending = (rtsr & RTSR_AL) ? 1 : 0;
 	return 0;
@@ -233,39 +200,31 @@ static int sa1100_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 
 static int sa1100_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
 	struct rtc_time now_tm, alarm_tm;
-	unsigned long time, alarm;
-	unsigned int rtsr;
-
-	spin_lock_irq(&sa1100_rtc->lock);
+	int ret;
 
-	time = rtc_readl(sa1100_rtc, RCNR);
-	rtc_time_to_tm(time, &now_tm);
-	rtc_next_alarm_time(&alarm_tm, &now_tm, &alrm->time);
-	rtc_tm_to_time(&alarm_tm, &alarm);
-	rtc_writel(sa1100_rtc, RTAR, alarm);
+	spin_lock_irq(&sa1100_rtc_lock);
 
-	rtsr = rtc_readl(sa1100_rtc, RTSR);
+	now = RCNR;
+	rtc_time_to_tm(now, &now_tm);
+	rtc_next_alarm_time(&alarm_tm, &now_tm, alrm->time);
+	rtc_tm_to_time(&alarm_tm, &time);
+	RTAR = time;
 	if (alrm->enabled)
-		rtsr |= RTSR_ALE;
+		RTSR |= RTSR_ALE;
 	else
-		rtsr &= ~RTSR_ALE;
-	rtc_writel(sa1100_rtc, RTSR, rtsr);
+		RTSR &= ~RTSR_ALE;
 
-	spin_unlock_irq(&sa1100_rtc->lock);
+	spin_unlock_irq(&sa1100_rtc_lock);
 
-	return 0;
+	return ret;
 }
 
 static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
+	seq_printf(seq, "trim/divider\t\t: 0x%08x\n", (u32) RTTR);
+	seq_printf(seq, "RTSR\t\t\t: 0x%08x\n", (u32)RTSR);
 
-	seq_printf(seq, "trim/divider\t\t: 0x%08x\n",
-			rtc_readl(sa1100_rtc, RTTR));
-	seq_printf(seq, "RTSR\t\t\t: 0x%08x\n",
-			rtc_readl(sa1100_rtc, RTSR));
 	return 0;
 }
 
@@ -282,51 +241,7 @@ static const struct rtc_class_ops sa1100_rtc_ops = {
 
 static int sa1100_rtc_probe(struct platform_device *pdev)
 {
-	struct sa1100_rtc *sa1100_rtc;
-	unsigned int rttr;
-	int ret;
-
-	sa1100_rtc = kzalloc(sizeof(struct sa1100_rtc), GFP_KERNEL);
-	if (!sa1100_rtc)
-		return -ENOMEM;
-
-	spin_lock_init(&sa1100_rtc->lock);
-	platform_set_drvdata(pdev, sa1100_rtc);
-
-	ret = -ENXIO;
-	sa1100_rtc->ress = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	if (!sa1100_rtc->ress) {
-		dev_err(&pdev->dev, "No I/O memory resource defined\n");
-		goto err_ress;
-	}
-
-	sa1100_rtc->irq_1Hz = platform_get_irq(pdev, 0);
-	if (sa1100_rtc->irq_1Hz < 0) {
-		dev_err(&pdev->dev, "No 1Hz IRQ resource defined\n");
-		goto err_ress;
-	}
-	sa1100_rtc->irq_Alrm = platform_get_irq(pdev, 1);
-	if (sa1100_rtc->irq_Alrm < 0) {
-		dev_err(&pdev->dev, "No alarm IRQ resource defined\n");
-		goto err_ress;
-	}
-
-	ret = -ENOMEM;
-	sa1100_rtc->base = ioremap(sa1100_rtc->ress->start,
-				resource_size(sa1100_rtc->ress));
-	if (!sa1100_rtc->base) {
-		dev_err(&pdev->dev, "Unable to map pxa RTC I/O memory\n");
-		goto err_map;
-	}
-
-	sa1100_rtc->clk = clk_get(&pdev->dev, NULL);
-	if (IS_ERR(sa1100_rtc->clk)) {
-		dev_err(&pdev->dev, "failed to find rtc clock source\n");
-		ret = PTR_ERR(sa1100_rtc->clk);
-		goto err_clk;
-	}
-	clk_prepare(sa1100_rtc->clk);
-	clk_enable(sa1100_rtc->clk);
+	struct rtc_device *rtc;
 
 	/*
 	 * According to the manual we should be able to let RTTR be zero
@@ -335,24 +250,24 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
 	 * If the clock divider is uninitialized then reset it to the
 	 * default value to get the 1Hz clock.
 	 */
-	if (rtc_readl(sa1100_rtc, RTTR) == 0) {
-		rttr = RTC_DEF_DIVIDER + (RTC_DEF_TRIM << 16);
-		rtc_writel(sa1100_rtc, RTTR, rttr);
-		dev_warn(&pdev->dev, "warning: initializing default clock"
-			 " divider/trim value\n");
+	if (RTTR == 0) {
+		RTTR = RTC_DEF_DIVIDER + (RTC_DEF_TRIM << 16);
+		dev_warn(&pdev->dev, "warning: "
+			"initializing default clock divider/trim value\n");
 		/* The current RTC value probably doesn't make sense either */
-		rtc_writel(sa1100_rtc, RCNR, 0);
+		RCNR = 0;
 	}
 
 	device_init_wakeup(&pdev->dev, 1);
 
-	sa1100_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev,
-						&sa1100_rtc_ops, THIS_MODULE);
-	if (IS_ERR(sa1100_rtc->rtc)) {
-		dev_err(&pdev->dev, "Failed to register RTC device -> %d\n",
-			ret);
-		goto err_rtc_reg;
-	}
+	rtc = rtc_device_register(pdev->name, &pdev->dev, &sa1100_rtc_ops,
+		THIS_MODULE);
+
+	if (IS_ERR(rtc))
+		return PTR_ERR(rtc);
+
+	platform_set_drvdata(pdev, rtc);
+
 	/* Fix for a nasty initialization problem the in SA11xx RTSR register.
 	 * See also the comments in sa1100_rtc_interrupt().
 	 *
@@ -375,46 +290,33 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
 	 *
 	 * Notice that clearing bit 1 and 0 is accomplished by writting ONES to
 	 * the corresponding bits in RTSR. */
-	rtc_writel(sa1100_rtc, RTSR, (RTSR_AL | RTSR_HZ));
+	RTSR = RTSR_AL | RTSR_HZ;
 
 	return 0;
-
-err_rtc_reg:
-err_clk:
-	iounmap(sa1100_rtc->base);
-err_ress:
-err_map:
-	kfree(sa1100_rtc);
-	return ret;
 }
 
 static int sa1100_rtc_remove(struct platform_device *pdev)
 {
-	struct sa1100_rtc *sa1100_rtc = platform_get_drvdata(pdev);
+	struct rtc_device *rtc = platform_get_drvdata(pdev);
+
+	if (rtc)
+		rtc_device_unregister(rtc);
 
-	rtc_device_unregister(sa1100_rtc->rtc);
-	clk_disable(sa1100_rtc->clk);
-	clk_unprepare(sa1100_rtc->clk);
-	iounmap(sa1100_rtc->base);
 	return 0;
 }
 
 #ifdef CONFIG_PM
 static int sa1100_rtc_suspend(struct device *dev)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
-
 	if (device_may_wakeup(dev))
-		enable_irq_wake(sa1100_rtc->irq_Alrm);
+		enable_irq_wake(IRQ_RTCAlrm);
 	return 0;
 }
 
 static int sa1100_rtc_resume(struct device *dev)
 {
-	struct sa1100_rtc *sa1100_rtc = dev_get_drvdata(dev);
-
 	if (device_may_wakeup(dev))
-		disable_irq_wake(sa1100_rtc->irq_Alrm);
+		disable_irq_wake(IRQ_RTCAlrm);
 	return 0;
 }
 
-- 
1.7.4.4

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

* [PATCH 05/11] ARM: sa11x0: fix collie build error
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (2 preceding siblings ...)
  2012-01-19 15:33 ` [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" Russell King - ARM Linux
@ 2012-01-19 15:34 ` Russell King - ARM Linux
  2012-01-19 15:34 ` [PATCH 06/11] ARM: sa11x0: fix section mismatch in cpu-sa1100.c Russell King - ARM Linux
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:34 UTC (permalink / raw)
  To: linux-arm-kernel

f408c985cefc (GPIO: sa1100: implement proper gpiolib gpio_to_irq conversion)
made gpio_to_irq() a function.  This breaks collie where it's used to
initialize some static data.  Fix that by moving the initialization to
the init code.

arch/arm/mach-sa1100/collie.c:139: error: initializer element is not constant
arch/arm/mach-sa1100/collie.c:139: error: (near initialization for 'collie_power_resource[0].start')
arch/arm/mach-sa1100/collie.c:140: error: initializer element is not constant
arch/arm/mach-sa1100/collie.c:140: error: (near initialization for 'collie_power_resource[0].end')

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mach-sa1100/collie.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
index c483912..cce8763 100644
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -144,8 +144,6 @@ static struct pda_power_pdata collie_power_data = {
 static struct resource collie_power_resource[] = {
 	{
 		.name		= "ac",
-		.start		= gpio_to_irq(COLLIE_GPIO_AC_IN),
-		.end		= gpio_to_irq(COLLIE_GPIO_AC_IN),
 		.flags		= IORESOURCE_IRQ |
 				  IORESOURCE_IRQ_HIGHEDGE |
 				  IORESOURCE_IRQ_LOWEDGE,
@@ -347,7 +345,8 @@ static void __init collie_init(void)
 
 	GPSR |= _COLLIE_GPIO_UCB1x00_RESET;
 
-
+	collie_power_resource[0].start = gpio_to_irq(COLLIE_GPIO_AC_IN);
+	collie_power_resource[0].end = gpio_to_irq(COLLIE_GPIO_AC_IN);
 	platform_scoop_config = &collie_pcmcia_config;
 
 	ret = platform_add_devices(devices, ARRAY_SIZE(devices));
-- 
1.7.4.4

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

* [PATCH 06/11] ARM: sa11x0: fix section mismatch in cpu-sa1100.c
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (3 preceding siblings ...)
  2012-01-19 15:34 ` [PATCH 05/11] ARM: sa11x0: fix collie build error Russell King - ARM Linux
@ 2012-01-19 15:34 ` Russell King - ARM Linux
  2012-01-19 15:34 ` [PATCH 07/11] ARM: fix a section mismatch warning with our use of memblock Russell King - ARM Linux
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:34 UTC (permalink / raw)
  To: linux-arm-kernel

WARNING: arch/arm/mach-sa1100/built-in.o(.data+0x11b8): Section mismatch in reference from the variable sa1100_driver to the function .init.text:sa1100_cpu_init()
The variable sa1100_driver references
the function __init sa1100_cpu_init()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mach-sa1100/cpu-sa1100.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-sa1100/cpu-sa1100.c b/arch/arm/mach-sa1100/cpu-sa1100.c
index aaa8acf..19b2053 100644
--- a/arch/arm/mach-sa1100/cpu-sa1100.c
+++ b/arch/arm/mach-sa1100/cpu-sa1100.c
@@ -228,7 +228,7 @@ static int __init sa1100_cpu_init(struct cpufreq_policy *policy)
 	return 0;
 }
 
-static struct cpufreq_driver sa1100_driver = {
+static struct cpufreq_driver sa1100_driver __refdata = {
 	.flags		= CPUFREQ_STICKY,
 	.verify		= sa11x0_verify_speed,
 	.target		= sa1100_target,
-- 
1.7.4.4

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

* [PATCH 07/11] ARM: fix a section mismatch warning with our use of memblock
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (4 preceding siblings ...)
  2012-01-19 15:34 ` [PATCH 06/11] ARM: sa11x0: fix section mismatch in cpu-sa1100.c Russell King - ARM Linux
@ 2012-01-19 15:34 ` Russell King - ARM Linux
  2012-01-19 15:35 ` [PATCH 08/11] ARM: vexpress: fix two section mismatch warnings Russell King - ARM Linux
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:34 UTC (permalink / raw)
  To: linux-arm-kernel

Commit 716a3dc2008 (ARM: Add arm_memblock_steal() to allocate memory
away from the kernel) added a function which calls memblock_alloc().
This causes a section conflict:

WARNING: vmlinux.o(.text+0xc614): Section mismatch in reference from the function arm_memblock_steal() to the function .init.text:memblock_alloc()
The function arm_memblock_steal() references
the function __init memblock_alloc().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mm/init.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 6ec1226..5dc7d12 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -310,7 +310,7 @@ static void arm_memory_present(void)
 
 static bool arm_memblock_steal_permitted = true;
 
-phys_addr_t arm_memblock_steal(phys_addr_t size, phys_addr_t align)
+phys_addr_t __init arm_memblock_steal(phys_addr_t size, phys_addr_t align)
 {
 	phys_addr_t phys;
 
-- 
1.7.4.4

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

* [PATCH 08/11] ARM: vexpress: fix two section mismatch warnings
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (5 preceding siblings ...)
  2012-01-19 15:34 ` [PATCH 07/11] ARM: fix a section mismatch warning with our use of memblock Russell King - ARM Linux
@ 2012-01-19 15:35 ` Russell King - ARM Linux
  2012-01-19 15:35 ` [PATCH 09/11] ARM: fix rcu stalls on SMP platforms Russell King - ARM Linux
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

WARNING: vmlinux.o(.text+0x1bc9c): Section mismatch in reference from the function ct_ca9x4_init_cpu_map() to the function .init.text:scu_get_core_count()
The function ct_ca9x4_init_cpu_map() references
the function __init scu_get_core_count().

WARNING: vmlinux.o(.text+0x1bce8): Section mismatch in reference from the function ct_ca9x4_init_cpu_map() to the function .init.text:set_smp_cross_call()
The function ct_ca9x4_init_cpu_map() references
the function __init set_smp_cross_call().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/mach-vexpress/ct-ca9x4.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c
index 2b1e836..b1e87c1 100644
--- a/arch/arm/mach-vexpress/ct-ca9x4.c
+++ b/arch/arm/mach-vexpress/ct-ca9x4.c
@@ -217,7 +217,7 @@ static void __init ct_ca9x4_init(void)
 }
 
 #ifdef CONFIG_SMP
-static void ct_ca9x4_init_cpu_map(void)
+static void __init ct_ca9x4_init_cpu_map(void)
 {
 	int i, ncores = scu_get_core_count(MMIO_P2V(A9_MPCORE_SCU));
 
@@ -233,7 +233,7 @@ static void ct_ca9x4_init_cpu_map(void)
 	set_smp_cross_call(gic_raise_softirq);
 }
 
-static void ct_ca9x4_smp_enable(unsigned int max_cpus)
+static void __init ct_ca9x4_smp_enable(unsigned int max_cpus)
 {
 	scu_enable(MMIO_P2V(A9_MPCORE_SCU));
 }
-- 
1.7.4.4

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

* [PATCH 09/11] ARM: fix rcu stalls on SMP platforms
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (6 preceding siblings ...)
  2012-01-19 15:35 ` [PATCH 08/11] ARM: vexpress: fix two section mismatch warnings Russell King - ARM Linux
@ 2012-01-19 15:35 ` Russell King - ARM Linux
  2012-01-19 15:35 ` [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name Russell King - ARM Linux
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

We can stall RCU processing on SMP platforms if a CPU sits in its idle
loop for a long time.  This happens because we don't call irq_enter()
and irq_exit() around generic_smp_call_function_interrupt() and
friends.  Add the necessary calls, and remove the one from within
ipi_timer(), so that they're all in a common place.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/kernel/smp.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 57db122..26cdc49 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -443,9 +443,7 @@ static DEFINE_PER_CPU(struct clock_event_device, percpu_clockevent);
 static void ipi_timer(void)
 {
 	struct clock_event_device *evt = &__get_cpu_var(percpu_clockevent);
-	irq_enter();
 	evt->event_handler(evt);
-	irq_exit();
 }
 
 #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
@@ -548,7 +546,9 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
 
 	switch (ipinr) {
 	case IPI_TIMER:
+		irq_enter();
 		ipi_timer();
+		irq_exit();
 		break;
 
 	case IPI_RESCHEDULE:
@@ -556,15 +556,21 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
 		break;
 
 	case IPI_CALL_FUNC:
+		irq_enter();
 		generic_smp_call_function_interrupt();
+		irq_exit();
 		break;
 
 	case IPI_CALL_FUNC_SINGLE:
+		irq_enter();
 		generic_smp_call_function_single_interrupt();
+		irq_exit();
 		break;
 
 	case IPI_CPU_STOP:
+		irq_enter();
 		ipi_cpu_stop(cpu);
+		irq_exit();
 		break;
 
 	default:
-- 
1.7.4.4

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

* [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (7 preceding siblings ...)
  2012-01-19 15:35 ` [PATCH 09/11] ARM: fix rcu stalls on SMP platforms Russell King - ARM Linux
@ 2012-01-19 15:35 ` Russell King - ARM Linux
  2012-01-19 16:11   ` Uwe Kleine-König
  2012-01-19 15:36 ` [PATCH 11/11] ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file Russell King - ARM Linux
  2012-01-19 17:00 ` [PATCH 00/11] Recently pending ARM fixes Will Deacon
  10 siblings, 1 reply; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

All other ports use "Kernel code" to identify the Kernel text segment
in /proc/iomem. Change the ARM resources to do the same.

Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/kernel/setup.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 129fbd5..95653d0 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -160,7 +160,7 @@ static struct resource mem_res[] = {
 		.flags = IORESOURCE_MEM
 	},
 	{
-		.name = "Kernel text",
+		.name = "Kernel code",
 		.start = 0,
 		.end = 0,
 		.flags = IORESOURCE_MEM
-- 
1.7.4.4

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

* [PATCH 11/11] ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (8 preceding siblings ...)
  2012-01-19 15:35 ` [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name Russell King - ARM Linux
@ 2012-01-19 15:36 ` Russell King - ARM Linux
  2012-01-19 17:00 ` [PATCH 00/11] Recently pending ARM fixes Will Deacon
  10 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 15:36 UTC (permalink / raw)
  To: linux-arm-kernel

Fix the following build warning:

  CC      arch/arm/kernel/setup.o
In file included from arch/arm/kernel/setup.c:39:
arch/arm/include/asm/elf.h:102:1: warning: "vmcore_elf64_check_arch" redefined
In file included from arch/arm/kernel/setup.c:24:
include/linux/crash_dump.h:30:1: warning: this is the location of the previous definition

Since commit 93a72052 (crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn)
the inclusion of <linux/crash_dump.h> is no longer needed.

Remove the inclusion of <linux/crash_dump.h> and the build warning is fixed.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 arch/arm/kernel/setup.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 95653d0..ab70c91 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -21,7 +21,6 @@
 #include <linux/init.h>
 #include <linux/kexec.h>
 #include <linux/of_fdt.h>
-#include <linux/crash_dump.h>
 #include <linux/root_dev.h>
 #include <linux/cpu.h>
 #include <linux/interrupt.h>
-- 
1.7.4.4

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

* [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name
  2012-01-19 15:35 ` [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name Russell King - ARM Linux
@ 2012-01-19 16:11   ` Uwe Kleine-König
  2012-01-19 16:20     ` Russell King - ARM Linux
  0 siblings, 1 reply; 24+ messages in thread
From: Uwe Kleine-König @ 2012-01-19 16:11 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Russell,

your summary mail suggests the author of this patch is Kees Cook. I
assume you didn't add the From: pseudo header by mistake?

Ditto for Fabio and patch 11/11.

Best regards
Uwe

On Thu, Jan 19, 2012 at 03:35:48PM +0000, Russell King - ARM Linux wrote:
> All other ports use "Kernel code" to identify the Kernel text segment
> in /proc/iomem. Change the ARM resources to do the same.
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> Acked-by: Nicolas Pitre <nico@linaro.org>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> ---
>  arch/arm/kernel/setup.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
> index 129fbd5..95653d0 100644
> --- a/arch/arm/kernel/setup.c
> +++ b/arch/arm/kernel/setup.c
> @@ -160,7 +160,7 @@ static struct resource mem_res[] = {
>  		.flags = IORESOURCE_MEM
>  	},
>  	{
> -		.name = "Kernel text",
> +		.name = "Kernel code",
>  		.start = 0,
>  		.end = 0,
>  		.flags = IORESOURCE_MEM
> -- 
> 1.7.4.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

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

* [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name
  2012-01-19 16:11   ` Uwe Kleine-König
@ 2012-01-19 16:20     ` Russell King - ARM Linux
  0 siblings, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 16:20 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 19, 2012 at 05:11:58PM +0100, Uwe Kleine-K?nig wrote:
> Hi Russell,
> 
> your summary mail suggests the author of this patch is Kees Cook. I
> assume you didn't add the From: pseudo header by mistake?

Yes they are, and it's something my scripts don't do at the moment.
It's the first time they've sent stuff out authored by someone other
than me.

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

* [PATCH 00/11] Recently pending ARM fixes
  2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
                   ` (9 preceding siblings ...)
  2012-01-19 15:36 ` [PATCH 11/11] ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file Russell King - ARM Linux
@ 2012-01-19 17:00 ` Will Deacon
  10 siblings, 0 replies; 24+ messages in thread
From: Will Deacon @ 2012-01-19 17:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Russell,

On Thu, Jan 19, 2012 at 03:31:49PM +0000, Russell King - ARM Linux wrote:
> Below is a summary of a new set of ARM fixes which I've queued up
> today (so far).  The big one is the revert of the changes to
> rtc-sa1100.c, which completely broke the driver.  Of the remainder,
> the bulk are sorting out a few section mismatch warnings.
> 
> The two remaining patches fix a build error with collie and some
> RCU problems seen on SMP platforms, and two other minor patches.
> 
> Most people won't have much interest in this set of fixes, except
> for the rcu patch, so I probably won't push this to Linus for a
> few days (which means the number could grow.)

I have a few pending fixes that I plan to stick into the patch system
tomorrow:

ARM: proc-v7.S: remove HARVARD_CACHE preprocessor guards
ARM: cortex-a7: move proc_info out of !CONFIG_ARM_LPAE block
ARM: vectors: use gate_vma for vectors user mapping
ARM: logical_cpu_map: decouple CPU mapping from SMP
ARM: hotplug: ensure that we copy the affinity mask when migrating IRQs
ARM: cache: assume 64-byte L1 cachelines for ARMv7 CPUs
ARM: vmlinux.lds.S: align the exception fixup table to a 4-byte boundary
ARM: vmlinux.lds.S: do not hardcode cacheline size as 32 bytes

the other bits and pieces I've been hacking on can wait until 3.4.

Cheers,

Will

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 15:33 ` [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" Russell King - ARM Linux
@ 2012-01-19 17:11   ` Nicolas Pitre
  2012-01-19 17:17     ` Russell King - ARM Linux
  0 siblings, 1 reply; 24+ messages in thread
From: Nicolas Pitre @ 2012-01-19 17:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 19 Jan 2012, Russell King - ARM Linux wrote:

> This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.
> 
> The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
> hint that something is wrong are these compiler warnings:
> 
> drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
> In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
>                  from drivers/rtc/rtc-sa1100.c:35:
> arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
> drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
> arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
> 
> and the second problem, which is far more severe, are the different
> register layouts, resulting in the wrong registers being read on
> SA11x0 platforms.  This patch adds:
> 
> but the SA11x0 registers are:
> ---
>  arch/arm/mach-pxa/devices.c    |   20 ---
>  arch/arm/mach-sa1100/generic.c |   20 ---
>  drivers/rtc/Kconfig            |    2 +-
>  drivers/rtc/rtc-sa1100.c       |  256 ++++++++++++---------------------------
>  4 files changed, 80 insertions(+), 218 deletions(-)
[...]

Truncated log?


Nicolas

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 17:11   ` Nicolas Pitre
@ 2012-01-19 17:17     ` Russell King - ARM Linux
  2012-01-19 17:21       ` Russell King - ARM Linux
  0 siblings, 1 reply; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 17:17 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 19, 2012 at 12:11:45PM -0500, Nicolas Pitre wrote:
> On Thu, 19 Jan 2012, Russell King - ARM Linux wrote:
> 
> > This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.
> > 
> > The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
> > hint that something is wrong are these compiler warnings:
> > 
> > drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
> > In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
> >                  from drivers/rtc/rtc-sa1100.c:35:
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
> > drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
> > arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
> > 
> > and the second problem, which is far more severe, are the different
> > register layouts, resulting in the wrong registers being read on
> > SA11x0 platforms.  This patch adds:
> > 
> > but the SA11x0 registers are:
> > ---
> >  arch/arm/mach-pxa/devices.c    |   20 ---
> >  arch/arm/mach-sa1100/generic.c |   20 ---
> >  drivers/rtc/Kconfig            |    2 +-
> >  drivers/rtc/rtc-sa1100.c       |  256 ++++++++++++---------------------------
> >  4 files changed, 80 insertions(+), 218 deletions(-)
> [...]
> 
> Truncated log?

No, it appears that something decided to delete several lines from the
log file, particularly those between "This patch adds:" and the
"but the SA11x0 registers are".

I'll add them back, and hope git doesn't lose them again.

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 17:17     ` Russell King - ARM Linux
@ 2012-01-19 17:21       ` Russell King - ARM Linux
  2012-01-19 17:27         ` Russell King - ARM Linux
  2012-01-19 17:28         ` Nicolas Pitre
  0 siblings, 2 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 17:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 19, 2012 at 05:17:37PM +0000, Russell King - ARM Linux wrote:
> On Thu, Jan 19, 2012 at 12:11:45PM -0500, Nicolas Pitre wrote:
> > On Thu, 19 Jan 2012, Russell King - ARM Linux wrote:
> > 
> > > This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.
> > > 
> > > The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
> > > hint that something is wrong are these compiler warnings:
> > > 
> > > drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
> > > In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
> > >                  from drivers/rtc/rtc-sa1100.c:35:
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
> > > drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
> > > arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
> > > 
> > > and the second problem, which is far more severe, are the different
> > > register layouts, resulting in the wrong registers being read on
> > > SA11x0 platforms.  This patch adds:
> > > 
> > > but the SA11x0 registers are:
> > > ---
> > >  arch/arm/mach-pxa/devices.c    |   20 ---
> > >  arch/arm/mach-sa1100/generic.c |   20 ---
> > >  drivers/rtc/Kconfig            |    2 +-
> > >  drivers/rtc/rtc-sa1100.c       |  256 ++++++++++++---------------------------
> > >  4 files changed, 80 insertions(+), 218 deletions(-)
> > [...]
> > 
> > Truncated log?
> 
> No, it appears that something decided to delete several lines from the
> log file, particularly those between "This patch adds:" and the
> "but the SA11x0 registers are".
> 
> I'll add them back, and hope git doesn't lose them again.

Ah.  No I can't add them.  They start with '#', and of course, git in
its wonderful self decides that any line starting with such a character,
even in the middle of a commit log, must be deleted.  Wonderful.

So, I'm afraid, that's all you get in the log, unless I can figure out
a way around that.

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 17:21       ` Russell King - ARM Linux
@ 2012-01-19 17:27         ` Russell King - ARM Linux
  2012-01-19 17:28         ` Nicolas Pitre
  1 sibling, 0 replies; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-01-19 17:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 19, 2012 at 05:21:36PM +0000, Russell King - ARM Linux wrote:
> Ah.  No I can't add them.  They start with '#', and of course, git in
> its wonderful self decides that any line starting with such a character,
> even in the middle of a commit log, must be deleted.  Wonderful.
> 
> So, I'm afraid, that's all you get in the log, unless I can figure out
> a way around that.

Right, I've changed it to (pasted from git log):

    Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
    
    This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.
    
    The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
    hint that something is wrong are these compiler warnings:
    
    drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
    In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
                     from drivers/rtc/rtc-sa1100.c:35:
    arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
    drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
    arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
    
    and the second problem, which is far more severe, are the different
    register layouts, resulting in the wrong registers being read on
    SA11x0 platforms.  This patch adds:
    
        #define RCNR           0x00    /* RTC Count Register */
        #define RTAR           0x04    /* RTC Alarm Register */
        #define RTSR           0x08    /* RTC Status Register */
        #define RTTR           0x0c    /* RTC Timer Trim Register */
    
    but the SA11x0 registers are:
    
        #define RTAR            __REG(0x90010000)  /* RTC Alarm Reg. */
        #define RCNR            __REG(0x90010004)  /* RTC CouNt Reg. */
        #define RTTR            __REG(0x90010008)  /* RTC Trim Reg. */
        #define RTSR            __REG(0x90010010)  /* RTC Status Reg. */

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

* [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families"
  2012-01-19 17:21       ` Russell King - ARM Linux
  2012-01-19 17:27         ` Russell King - ARM Linux
@ 2012-01-19 17:28         ` Nicolas Pitre
  1 sibling, 0 replies; 24+ messages in thread
From: Nicolas Pitre @ 2012-01-19 17:28 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 19 Jan 2012, Russell King - ARM Linux wrote:

> On Thu, Jan 19, 2012 at 05:17:37PM +0000, Russell King - ARM Linux wrote:
> > On Thu, Jan 19, 2012 at 12:11:45PM -0500, Nicolas Pitre wrote:
> > > On Thu, 19 Jan 2012, Russell King - ARM Linux wrote:
> > > 
> > > > This reverts commit 7cea00657dd4daef66ad95e976d5d67ed94cb97e.
> > > > 
> > > > The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
> > > > hint that something is wrong are these compiler warnings:
> > > > 
> > > > drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
> > > > In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
> > > >                  from drivers/rtc/rtc-sa1100.c:35:
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
> > > > drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
> > > > arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
> > > > 
> > > > and the second problem, which is far more severe, are the different
> > > > register layouts, resulting in the wrong registers being read on
> > > > SA11x0 platforms.  This patch adds:
> > > > 
> > > > but the SA11x0 registers are:
> > > > ---
> > > >  arch/arm/mach-pxa/devices.c    |   20 ---
> > > >  arch/arm/mach-sa1100/generic.c |   20 ---
> > > >  drivers/rtc/Kconfig            |    2 +-
> > > >  drivers/rtc/rtc-sa1100.c       |  256 ++++++++++++---------------------------
> > > >  4 files changed, 80 insertions(+), 218 deletions(-)
> > > [...]
> > > 
> > > Truncated log?
> > 
> > No, it appears that something decided to delete several lines from the
> > log file, particularly those between "This patch adds:" and the
> > "but the SA11x0 registers are".
> > 
> > I'll add them back, and hope git doesn't lose them again.
> 
> Ah.  No I can't add them.  They start with '#', and of course, git in
> its wonderful self decides that any line starting with such a character,
> even in the middle of a commit log, must be deleted.  Wonderful.
> 
> So, I'm afraid, that's all you get in the log, unless I can figure out
> a way around that.

Just add a space or a tab before the #.

Alternatively you can use git commit with -F to provide the log message 
from a specified file (using - for stdin works).


Nicolas

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-01-19 15:33 ` [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc" Russell King - ARM Linux
@ 2012-02-11 19:07   ` Jonathan Cameron
  2012-02-11 19:42     ` Russell King - ARM Linux
  0 siblings, 1 reply; 24+ messages in thread
From: Jonathan Cameron @ 2012-02-11 19:07 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/19/2012 03:33 PM, Russell King - ARM Linux wrote:
> This reverts commit 7557c175f60d8d40baf16b22caf79beadef8f081.
> 
> This revert is necessary to revert the broken "RTC: sa1100:
> support sa1100, pxa and mmp soc families" change.

Taking out the lines concerning the dummy clk for pxa-gpio is
causing stargate2's smc91x driver to fail to find the part.

So reverting the regression cause caused a different regression.

Something 'unusual' occured with the commit you reference above.
The gpio line was added in 389eda15e0f41112d7c44213b3c4f8bd1c9398bc
    ARM: pxa: add clk support in gpio driver

    Support clk in gpio driver. There's no gpio clock in PXA25x and PXA27x.
    So use dummy clk instead. And move the gpio edge initialization into
    gpio driver for arch-mmp.

    Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>

and git is telling me it was then readded in the patch you reverted.

Reapplying the above patch fixes the issue for me.

Note the regression Paul Parson's reported in

mfp/gpio regression: pxa_last_gpio used before initialized

is still there and is related to this same series of patches.
Annoyingly it took me two bisections of the merge window (via some
nasty breakage along the way) to track these down given one was
caused by the introduction of this series and the other by the reversion
of part of it.  Ah well, sometimes life is against you.

> ---
>  arch/arm/mach-pxa/pxa25x.c |    2 --
>  arch/arm/mach-pxa/pxa27x.c |    2 --
>  arch/arm/mach-pxa/pxa300.c |    1 -
>  arch/arm/mach-pxa/pxa320.c |    1 -
>  arch/arm/mach-pxa/pxa3xx.c |    1 -
>  arch/arm/mach-pxa/pxa95x.c |    1 -
>  6 files changed, 0 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
> index adf058f..91e4f6c 100644
> --- a/arch/arm/mach-pxa/pxa25x.c
> +++ b/arch/arm/mach-pxa/pxa25x.c
> @@ -209,8 +209,6 @@ static struct clk_lookup pxa25x_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
>  	INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
>  	INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
> -	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static struct clk_lookup pxa25x_hwuart_clkreg =
> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
> index 180bd86..aed6cbc 100644
> --- a/arch/arm/mach-pxa/pxa27x.c
> +++ b/arch/arm/mach-pxa/pxa27x.c
> @@ -230,8 +230,6 @@ static struct clk_lookup pxa27x_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
>  	INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
>  	INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
> -	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  #ifdef CONFIG_PM
> diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
> index 0388eda..40bb165 100644
> --- a/arch/arm/mach-pxa/pxa300.c
> +++ b/arch/arm/mach-pxa/pxa300.c
> @@ -89,7 +89,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA300_GCU, 0, 0);
>  static struct clk_lookup common_clkregs[] = {
>  	INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL),
>  	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0);
> diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
> index d487e1f..8d614ec 100644
> --- a/arch/arm/mach-pxa/pxa320.c
> +++ b/arch/arm/mach-pxa/pxa320.c
> @@ -83,7 +83,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA320_GCU, 0, 0);
>  static struct clk_lookup pxa320_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL),
>  	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static int __init pxa320_init(void)
> diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
> index f107c71..4f402af 100644
> --- a/arch/arm/mach-pxa/pxa3xx.c
> +++ b/arch/arm/mach-pxa/pxa3xx.c
> Path: news.gmane.org!not-for-mail
> From: Russell King - ARM Linux <linux@arm.linux.org.uk>
> Newsgroups: gmane.linux.ports.arm.kernel
> Subject: [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
> Date: Thu, 19 Jan 2012 15:33:04 +0000
> Lines: 89
> Approved: news at gmane.org
> Message-ID: <E1Rntz6-0002pN-UE@rmk-PC.arm.linux.org.uk>
> References: <20120119153149.GB1068@n2100.arm.linux.org.uk>
> NNTP-Posting-Host: lo.gmane.org
> Mime-Version: 1.0
> Content-Type: text/plain; charset="us-ascii"
> Content-Transfer-Encoding: 7bit
> X-Trace: dough.gmane.org 1326987256 17293 80.91.229.12 (19 Jan 2012 15:34:16 GMT)
> X-Complaints-To: usenet at dough.gmane.org
> NNTP-Posting-Date: Thu, 19 Jan 2012 15:34:16 +0000 (UTC)
> Cc: linux-arm-kernel at lists.infradead.org
> To: Alessandro Zummo <a.zummo@towertech.it>, Eric Miao <eric.y.miao@gmail.com>,
>  Haojian Zhuang <haojian.zhuang@marvell.com>
> Original-X-From: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org at lists.infradead.org Thu Jan 19 16:34:12 2012
> Return-path: <linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org>
> Envelope-to: linux-arm-kernel at m.gmane.org
> Original-Received: from merlin.infradead.org ([205.233.59.134])
> 	by lo.gmane.org with esmtp (Exim 4.69)
> 	(envelope-from <linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org>)
> 	id 1Rnu0B-0003BT-Rl
> 	for linux-arm-kernel at m.gmane.org; Thu, 19 Jan 2012 16:34:12 +0100
> Original-Received: from localhost ([::1] helo=merlin.infradead.org)
> 	by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux))
> 	id 1Rntzr-0004U8-1D; Thu, 19 Jan 2012 15:33:51 +0000
> Original-Received: from [2002:4e20:1eda::1] (helo=caramon.arm.linux.org.uk)
>  by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux))
>  id 1Rntzn-0004TB-NX
>  for linux-arm-kernel at lists.infradead.org; Thu, 19 Jan 2012 15:33:48 +0000
> DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
>  d=arm.linux.org.uk; s=caramon; 
>  h=Date:Sender:Message-Id:Content-Type:MIME-Version:Subject:Cc:To:From:References:In-Reply-To;
>  bh=CRJy9I8VrueLAFVV1dQT8z59MD8ZXLM7qL7ZxqDZXb8=; 
>  b=oA0dWgc3PfX8EdGWIz4FtN+Jrhf83oMzzKwJ8OHC+ak8c43bY7lP3XneWB+0YoVhhb9dpKyM//+CWYbaxtXDPVPeR5DaXUCwhsMvrioz8CFqUQUa/tPhiDEa9uMhVhXNhxrIOCDZgUPhcT3Hua0QgoarAIAGOYlHhFXlg6Zh2Nc=;
> Original-Received: from e0022681537dd.dyn.arm.linux.org.uk
>  ([2002:4e20:1eda:1:222:68ff:fe15:37dd]:47744 helo=rmk-PC.arm.linux.org.uk)
>  by caramon.arm.linux.org.uk with esmtpsa (TLSv1:AES256-SHA:256)
>  (Exim 4.76) (envelope-from <rmk@arm.linux.org.uk>)
>  id 1RntzA-0003vg-I1; Thu, 19 Jan 2012 15:33:08 +0000
> Original-Received: from rmk by rmk-PC.arm.linux.org.uk with local (Exim 4.76)
>  (envelope-from <rmk@arm.linux.org.uk>)
>  id 1Rntz6-0002pN-UE; Thu, 19 Jan 2012 15:33:05 +0000
> In-Reply-To: <20120119153149.GB1068@n2100.arm.linux.org.uk>
> Content-Disposition: inline
> X-Spam-Note: CRM114 invocation failed
> X-Spam-Score: -1.2 (-)
> X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary:
>  Content analysis details:   (-1.2 points)
>  pts rule name              description
>  ---- ---------------------- --------------------------------------------------
>  -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
>  [score: 0.0000]
>  -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's
>  domain
>  0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
>  not necessarily valid
>  -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
>  0.8 RDNS_NONE Delivered to internal network by a host with no rDNS
> X-BeenThere: linux-arm-kernel at lists.infradead.org
> X-Mailman-Version: 2.1.14
> Precedence: list
> List-Id: <linux-arm-kernel.lists.infradead.org>
> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-arm-kernel>, 
>  <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
> List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
> List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
> List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, 
>  <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
> Original-Sender: linux-arm-kernel-bounces at lists.infradead.org
> Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org at lists.infradead.org
> Xref: news.gmane.org gmane.linux.ports.arm.kernel:148605
> Archived-At: <http://permalink.gmane.org/gmane.linux.ports.arm.kernel/148605>
> 
> This reverts commit 7557c175f60d8d40baf16b22caf79beadef8f081.
> 
> This revert is necessary to revert the broken "RTC: sa1100:
> support sa1100, pxa and mmp soc families" change.
> ---
>  arch/arm/mach-pxa/pxa25x.c |    2 --
>  arch/arm/mach-pxa/pxa27x.c |    2 --
>  arch/arm/mach-pxa/pxa300.c |    1 -
>  arch/arm/mach-pxa/pxa320.c |    1 -
>  arch/arm/mach-pxa/pxa3xx.c |    1 -
>  arch/arm/mach-pxa/pxa95x.c |    1 -
>  6 files changed, 0 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
> index adf058f..91e4f6c 100644
> --- a/arch/arm/mach-pxa/pxa25x.c
> +++ b/arch/arm/mach-pxa/pxa25x.c
> @@ -209,8 +209,6 @@ static struct clk_lookup pxa25x_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
>  	INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
>  	INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
> -	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static struct clk_lookup pxa25x_hwuart_clkreg =
> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
> index 180bd86..aed6cbc 100644
> --- a/arch/arm/mach-pxa/pxa27x.c
> +++ b/arch/arm/mach-pxa/pxa27x.c
> @@ -230,8 +230,6 @@ static struct clk_lookup pxa27x_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
>  	INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
>  	INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
> -	INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  #ifdef CONFIG_PM
> diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
> index 0388eda..40bb165 100644
> --- a/arch/arm/mach-pxa/pxa300.c
> +++ b/arch/arm/mach-pxa/pxa300.c
> @@ -89,7 +89,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA300_GCU, 0, 0);
>  static struct clk_lookup common_clkregs[] = {
>  	INIT_CLKREG(&clk_common_nand, "pxa3xx-nand", NULL),
>  	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static DEFINE_PXA3_CKEN(pxa310_mmc3, MMC3, 19500000, 0);
> diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
> index d487e1f..8d614ec 100644
> --- a/arch/arm/mach-pxa/pxa320.c
> +++ b/arch/arm/mach-pxa/pxa320.c
> @@ -83,7 +83,6 @@ static DEFINE_PXA3_CKEN(gcu, PXA320_GCU, 0, 0);
>  static struct clk_lookup pxa320_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa320_nand, "pxa3xx-nand", NULL),
>  	INIT_CLKREG(&clk_gcu, "pxa3xx-gcu", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  };
>  
>  static int __init pxa320_init(void)
> diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
> index f107c71..4f402af 100644
> --- a/arch/arm/mach-pxa/pxa3xx.c
> +++ b/arch/arm/mach-pxa/pxa3xx.c
> @@ -67,7 +67,6 @@ static struct clk_lookup pxa3xx_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa3xx_pout, NULL, "CLK_POUT"),
>  	/* Power I2C clock is always on */
>  	INIT_CLKREG(&clk_dummy, "pxa3xx-pwri2c.1", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  	INIT_CLKREG(&clk_pxa3xx_lcd, "pxa2xx-fb", NULL),
>  	INIT_CLKREG(&clk_pxa3xx_camera, NULL, "CAMCLK"),
>  	INIT_CLKREG(&clk_pxa3xx_ac97, NULL, "AC97CLK"),
> diff --git a/arch/arm/mach-pxa/pxa95x.c b/arch/arm/mach-pxa/pxa95x.c
> index fccc644..d082a58 100644
> --- a/arch/arm/mach-pxa/pxa95x.c
> +++ b/arch/arm/mach-pxa/pxa95x.c
> @@ -217,7 +217,6 @@ static struct clk_lookup pxa95x_clkregs[] = {
>  	INIT_CLKREG(&clk_pxa95x_pout, NULL, "CLK_POUT"),
>  	/* Power I2C clock is always on */
>  	INIT_CLKREG(&clk_dummy, "pxa3xx-pwri2c.1", NULL),
> -	INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
>  	INIT_CLKREG(&clk_pxa95x_lcd, "pxa2xx-fb", NULL),
>  	INIT_CLKREG(&clk_pxa95x_ffuart, "pxa2xx-uart.0", NULL),
>  	INIT_CLKREG(&clk_pxa95x_btuart, "pxa2xx-uart.1", NULL),

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-02-11 19:07   ` Jonathan Cameron
@ 2012-02-11 19:42     ` Russell King - ARM Linux
  2012-02-13 13:01       ` Haojian Zhuang
  0 siblings, 1 reply; 24+ messages in thread
From: Russell King - ARM Linux @ 2012-02-11 19:42 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Feb 11, 2012 at 07:07:15PM +0000, Jonathan Cameron wrote:
> On 01/19/2012 03:33 PM, Russell King - ARM Linux wrote:
> > This reverts commit 7557c175f60d8d40baf16b22caf79beadef8f081.
> > 
> > This revert is necessary to revert the broken "RTC: sa1100:
> > support sa1100, pxa and mmp soc families" change.
> 
> Taking out the lines concerning the dummy clk for pxa-gpio is
> causing stargate2's smc91x driver to fail to find the part.
> 
> So reverting the regression cause caused a different regression.
> 
> Something 'unusual' occured with the commit you reference above.
> The gpio line was added in 389eda15e0f41112d7c44213b3c4f8bd1c9398bc

Sigh.  I give up with this issue, people are obviously useless at
properly separating their changes.  Someone else can sort out this
bloody mess.

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-02-11 19:42     ` Russell King - ARM Linux
@ 2012-02-13 13:01       ` Haojian Zhuang
  2012-02-27 18:24         ` Paul Parsons
  0 siblings, 1 reply; 24+ messages in thread
From: Haojian Zhuang @ 2012-02-13 13:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Feb 12, 2012 at 3:42 AM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Sat, Feb 11, 2012 at 07:07:15PM +0000, Jonathan Cameron wrote:
>> On 01/19/2012 03:33 PM, Russell King - ARM Linux wrote:
>> > This reverts commit 7557c175f60d8d40baf16b22caf79beadef8f081.
>> >
>> > This revert is necessary to revert the broken "RTC: sa1100:
>> > support sa1100, pxa and mmp soc families" change.
>>
>> Taking out the lines concerning the dummy clk for pxa-gpio is
>> causing stargate2's smc91x driver to fail to find the part.
>>
>> So reverting the regression cause caused a different regression.
>>
>> Something 'unusual' occured with the commit you reference above.
>> The gpio line was added in 389eda15e0f41112d7c44213b3c4f8bd1c9398bc
>
> Sigh. ?I give up with this issue, people are obviously useless at
> properly separating their changes. ?Someone else can sort out this
> bloody mess.
>
Sure. I'll try to fix this issue in this week.

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-02-13 13:01       ` Haojian Zhuang
@ 2012-02-27 18:24         ` Paul Parsons
  2012-02-28  1:56           ` Haojian Zhuang
  0 siblings, 1 reply; 24+ messages in thread
From: Paul Parsons @ 2012-02-27 18:24 UTC (permalink / raw)
  To: linux-arm-kernel

> >> > This reverts commit
> 7557c175f60d8d40baf16b22caf79beadef8f081.
> >> >
> >> > This revert is necessary to revert the broken
> "RTC: sa1100:
> >> > support sa1100, pxa and mmp soc families"
> change.
> >>
> >> Taking out the lines concerning the dummy clk for
> pxa-gpio is
> >> causing stargate2's smc91x driver to fail to find
> the part.
> >>
> >> So reverting the regression cause caused a
> different regression.
> >>
> >> Something 'unusual' occured with the commit you
> reference above.
> >> The gpio line was added in
> 389eda15e0f41112d7c44213b3c4f8bd1c9398bc
> >
> > Sigh. ?I give up with this issue, people are obviously
> useless at
> > properly separating their changes. ?Someone else can
> sort out this
> > bloody mess.
> >
> Sure. I'll try to fix this issue in this week.

Removing the pxa-gpio dummy clk also broke the hx4700.

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

* [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc"
  2012-02-27 18:24         ` Paul Parsons
@ 2012-02-28  1:56           ` Haojian Zhuang
  0 siblings, 0 replies; 24+ messages in thread
From: Haojian Zhuang @ 2012-02-28  1:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Feb 28, 2012 at 2:24 AM, Paul Parsons <lost.distance@yahoo.com> wrote:
>> >> > This reverts commit
>> 7557c175f60d8d40baf16b22caf79beadef8f081.
>> >> >
>> >> > This revert is necessary to revert the broken
>> "RTC: sa1100:
>> >> > support sa1100, pxa and mmp soc families"
>> change.
>> >>
>> >> Taking out the lines concerning the dummy clk for
>> pxa-gpio is
>> >> causing stargate2's smc91x driver to fail to find
>> the part.
>> >>
>> >> So reverting the regression cause caused a
>> different regression.
>> >>
>> >> Something 'unusual' occured with the commit you
>> reference above.
>> >> The gpio line was added in
>> 389eda15e0f41112d7c44213b3c4f8bd1c9398bc
>> >
>> > Sigh. ?I give up with this issue, people are obviously
>> useless at
>> > properly separating their changes. ?Someone else can
>> sort out this
>> > bloody mess.
>> >
>> Sure. I'll try to fix this issue in this week.
>
> Removing the pxa-gpio dummy clk also broke the hx4700.

Thanks. I'll append it for pxa27x again.

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

end of thread, other threads:[~2012-02-28  1:56 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-19 15:31 [PATCH 00/11] Recently pending ARM fixes Russell King - ARM Linux
2012-01-19 15:32 ` [PATCH 01/11] Revert "ARM: sa1100: clean up of the clock support" Russell King - ARM Linux
2012-01-19 15:33 ` [PATCH 02/11] Revert "ARM: pxa: add dummy clock for sa1100-rtc" Russell King - ARM Linux
2012-02-11 19:07   ` Jonathan Cameron
2012-02-11 19:42     ` Russell King - ARM Linux
2012-02-13 13:01       ` Haojian Zhuang
2012-02-27 18:24         ` Paul Parsons
2012-02-28  1:56           ` Haojian Zhuang
2012-01-19 15:33 ` [PATCH 03/11] Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" Russell King - ARM Linux
2012-01-19 17:11   ` Nicolas Pitre
2012-01-19 17:17     ` Russell King - ARM Linux
2012-01-19 17:21       ` Russell King - ARM Linux
2012-01-19 17:27         ` Russell King - ARM Linux
2012-01-19 17:28         ` Nicolas Pitre
2012-01-19 15:34 ` [PATCH 05/11] ARM: sa11x0: fix collie build error Russell King - ARM Linux
2012-01-19 15:34 ` [PATCH 06/11] ARM: sa11x0: fix section mismatch in cpu-sa1100.c Russell King - ARM Linux
2012-01-19 15:34 ` [PATCH 07/11] ARM: fix a section mismatch warning with our use of memblock Russell King - ARM Linux
2012-01-19 15:35 ` [PATCH 08/11] ARM: vexpress: fix two section mismatch warnings Russell King - ARM Linux
2012-01-19 15:35 ` [PATCH 09/11] ARM: fix rcu stalls on SMP platforms Russell King - ARM Linux
2012-01-19 15:35 ` [PATCH 10/11] ARM: 7279/1: standardize /proc/iomem "Kernel code" name Russell King - ARM Linux
2012-01-19 16:11   ` Uwe Kleine-König
2012-01-19 16:20     ` Russell King - ARM Linux
2012-01-19 15:36 ` [PATCH 11/11] ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file Russell King - ARM Linux
2012-01-19 17:00 ` [PATCH 00/11] Recently pending ARM fixes Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).