upgrade 3.12 targets to 3.12.5
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 39055
This commit is contained in:
@@ -13,7 +13,7 @@ FEATURES:=usb usbgadget ext4 targz fpu audio display
|
||||
CPU_TYPE:=cortex-a9
|
||||
CPU_SUBTYPE:=vfpv3
|
||||
|
||||
LINUX_VERSION:=3.12
|
||||
LINUX_VERSION:=3.12.5
|
||||
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
|
||||
@@ -1,36 +1,49 @@
|
||||
From f92d9597f781f6a5a39c73dc71604bd8a21c5299 Mon Sep 17 00:00:00 2001
|
||||
From: Rajendra Nayak <rnayak@ti.com>
|
||||
Date: Wed, 09 Oct 2013 07:26:55 +0000
|
||||
Subject: ARM: OMAP2+: hwmod: Extract no-idle and no-reset info from DT
|
||||
|
||||
Now that we have DT bindings to specify which devices should not
|
||||
be reset and idled during init, make hwmod extract the information
|
||||
(and store them in internal flags) from Device tree.
|
||||
|
||||
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
|
||||
[paul@pwsan.com: updated to apply]
|
||||
Signed-off-by: Paul Walmsley <paul@pwsan.com>
|
||||
|
||||
---
|
||||
arch/arm/mach-omap2/omap_hwmod.c | 23 ++++++++++++++++-------
|
||||
1 file changed, 16 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/arch/arm/mach-omap2/omap_hwmod.c
|
||||
+++ b/arch/arm/mach-omap2/omap_hwmod.c
|
||||
@@ -2363,11 +2363,11 @@ static struct device_node *of_dev_hwmod_
|
||||
* are part of the device's address space can be ioremapped properly.
|
||||
* No return value.
|
||||
@@ -2357,6 +2357,8 @@ static struct device_node *of_dev_hwmod_
|
||||
/**
|
||||
* _init_mpu_rt_base - populate the virtual address for a hwmod
|
||||
* @oh: struct omap_hwmod * to locate the virtual address
|
||||
+ * @data: (unused, caller should pass NULL)
|
||||
+ * @np: struct device_node * of the IP block's device node in the DT data
|
||||
*
|
||||
* Cache the virtual address used by the MPU to access this IP block's
|
||||
* registers. This address is needed early so the OCP registers that
|
||||
@@ -2365,11 +2367,11 @@ static struct device_node *of_dev_hwmod_
|
||||
* Returns 0 on success, -EINVAL if an invalid hwmod is passed, and
|
||||
* -ENXIO on absent or invalid register target address space.
|
||||
*/
|
||||
-static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
|
||||
+static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
|
||||
+ struct device_node *np)
|
||||
-static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data)
|
||||
+static int __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data,
|
||||
+ struct device_node *np)
|
||||
{
|
||||
struct omap_hwmod_addr_space *mem;
|
||||
void __iomem *va_start = NULL;
|
||||
- struct device_node *np;
|
||||
|
||||
if (!oh)
|
||||
return;
|
||||
@@ -2383,12 +2383,10 @@ static void __init _init_mpu_rt_base(str
|
||||
return -EINVAL;
|
||||
@@ -2385,12 +2387,10 @@ static int __init _init_mpu_rt_base(stru
|
||||
oh->name);
|
||||
|
||||
/* Extract the IO space from device tree blob */
|
||||
- if (!of_have_populated_dt())
|
||||
+ if (!np)
|
||||
return;
|
||||
return -ENXIO;
|
||||
|
||||
- np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
|
||||
- if (np)
|
||||
@@ -39,7 +52,7 @@ arch/arm/mach-omap2/omap_hwmod.c | 23 ++++++++++++++++-------
|
||||
} else {
|
||||
va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start);
|
||||
}
|
||||
@@ -2420,12 +2418,16 @@ static void __init _init_mpu_rt_base(str
|
||||
@@ -2423,12 +2423,16 @@ static int __init _init_mpu_rt_base(stru
|
||||
static int __init _init(struct omap_hwmod *oh, void *data)
|
||||
{
|
||||
int r;
|
||||
@@ -51,22 +64,21 @@ arch/arm/mach-omap2/omap_hwmod.c | 23 ++++++++++++++++-------
|
||||
+ if (of_have_populated_dt())
|
||||
+ np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh);
|
||||
+
|
||||
if (oh->class->sysc)
|
||||
- _init_mpu_rt_base(oh, NULL);
|
||||
+ _init_mpu_rt_base(oh, NULL, np);
|
||||
|
||||
r = _init_clocks(oh, NULL);
|
||||
if (r < 0) {
|
||||
@@ -2433,6 +2435,13 @@ static int __init _init(struct omap_hwmo
|
||||
if (oh->class->sysc) {
|
||||
- r = _init_mpu_rt_base(oh, NULL);
|
||||
+ r = _init_mpu_rt_base(oh, NULL, np);
|
||||
if (r < 0) {
|
||||
WARN(1, "omap_hwmod: %s: doesn't have mpu register target base\n",
|
||||
oh->name);
|
||||
@@ -2442,6 +2446,12 @@ static int __init _init(struct omap_hwmo
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+ if (np) {
|
||||
+ if (np)
|
||||
+ if (of_find_property(np, "ti,no-reset-on-init", NULL))
|
||||
+ oh->flags |= HWMOD_INIT_NO_RESET;
|
||||
+ if (of_find_property(np, "ti,no-idle-on-init", NULL))
|
||||
+ oh->flags |= HWMOD_INIT_NO_IDLE;
|
||||
+ }
|
||||
+
|
||||
oh->_state = _HWMOD_STATE_INITIALIZED;
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From 0bebda684857f76548ea48c8886785198701d8d3 Mon Sep 17 00:00:00 2001
|
||||
From: Markus Pargmann <mpa@pengutronix.de>
|
||||
Date: Thu, 17 Oct 2013 07:18:38 +0000
|
||||
Subject: ARM: OMAP2+: irq, AM33XX add missing register check
|
||||
|
||||
am33xx has a INTC_PENDING_IRQ3 register that is not checked for pending
|
||||
interrupts. This patch adds AM33XX to the ifdef of SOCs that have to
|
||||
check this register.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
|
||||
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
||||
---
|
||||
--- a/arch/arm/mach-omap2/irq.c
|
||||
+++ b/arch/arm/mach-omap2/irq.c
|
||||
@@ -233,7 +233,7 @@ static inline void omap_intc_handle_irq(
|
||||
goto out;
|
||||
|
||||
irqnr = readl_relaxed(base_addr + 0xd8);
|
||||
-#ifdef CONFIG_SOC_TI81XX
|
||||
+#if IS_ENABLED(CONFIG_SOC_TI81XX) || IS_ENABLED(CONFIG_SOC_AM33XX)
|
||||
if (irqnr)
|
||||
goto out;
|
||||
irqnr = readl_relaxed(base_addr + 0xf8);
|
||||
Reference in New Issue
Block a user