aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 16:44:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-05 16:44:27 -0400
commit9f800363bb0ea459e15bef0928a72c88d374e489 (patch)
tree13a6b4165d3e2ba18e88e5103437f74e84e0838d /arch/arm/mach-omap2
parent2d1eb87ae1e6f3999e77989fd2f831b134270787 (diff)
parentcb46a256a78225817945cd52068d61d5126c236e (diff)
Merge tag 'fixes-non-critical-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-critical bug fixes from Arnd Bergmann: "Lots of isolated bug fixes that were not found to be important enough to be submitted before the merge window or backported into stable kernels. The vast majority of these came out of Arnd's randconfig testing and just prevents running into build-time bugs in configurations that we do not care about in practice" * tag 'fixes-non-critical-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (75 commits) ARM: at91: fix a typo ARM: moxart: fix CPU selection ARM: tegra: fix board DT pinmux setup ARM: nspire: Fix compiler warning IXP4xx: Fix DMA masks. Revert "ARM: ixp4xx: Make dma_set_coherent_mask common, correct implementation" IXP4xx: Fix Goramo Multilink GPIO conversion. Revert "ARM: ixp4xx: fix gpio rework" ARM: tegra: make debug_ll code build for ARMv6 ARM: sunxi: fix build for THUMB2_KERNEL ARM: exynos: add missing include of linux/module.h ARM: exynos: fix l2x0 saved regs handling ARM: samsung: select CRC32 for SAMSUNG_PM_CHECK ARM: samsung: select ATAGS where necessary ARM: samsung: fix SAMSUNG_PM_DEBUG Kconfig logic ARM: samsung: allow serial driver to be disabled ARM: s5pv210: enable IDE support in MACH_TORBRECK ARM: s5p64x0: fix building with only one soc type ARM: s3c64xx: select power domains only when used ARM: s3c64xx: MACH_SMDK6400 needs HSMMC1 ...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/irq.c8
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_44xx_data.c3
-rw-r--r--arch/arm/mach-omap2/pm.h2
3 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index e022a869bff2..6037a9a01ed5 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -222,6 +222,7 @@ void __init ti81xx_init_irq(void)
222static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs *regs) 222static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs *regs)
223{ 223{
224 u32 irqnr; 224 u32 irqnr;
225 int handled_irq = 0;
225 226
226 do { 227 do {
227 irqnr = readl_relaxed(base_addr + 0x98); 228 irqnr = readl_relaxed(base_addr + 0x98);
@@ -249,8 +250,15 @@ out:
249 if (irqnr) { 250 if (irqnr) {
250 irqnr = irq_find_mapping(domain, irqnr); 251 irqnr = irq_find_mapping(domain, irqnr);
251 handle_IRQ(irqnr, regs); 252 handle_IRQ(irqnr, regs);
253 handled_irq = 1;
252 } 254 }
253 } while (irqnr); 255 } while (irqnr);
256
257 /* If an irq is masked or deasserted while active, we will
258 * keep ending up here with no irq handled. So remove it from
259 * the INTC with an ack.*/
260 if (!handled_irq)
261 omap_ack_irq(NULL);
254} 262}
255 263
256asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs) 264asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs)
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 3318cae96e7d..1219280bb976 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -2541,8 +2541,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_spinlock_sysc = {
2541 .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY | 2541 .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
2542 SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE | 2542 SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
2543 SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), 2543 SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
2544 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | 2544 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
2545 SIDLE_SMART_WKUP),
2546 .sysc_fields = &omap_hwmod_sysc_type1, 2545 .sysc_fields = &omap_hwmod_sysc_type1,
2547}; 2546};
2548 2547
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index 7bdd22afce69..d4d0fce325c7 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -103,7 +103,7 @@ static inline void enable_omap3630_toggle_l2_on_restore(void) { }
103 103
104#define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0) 104#define PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD (1 << 0)
105 105
106#if defined(CONFIG_ARCH_OMAP4) 106#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4)
107extern u16 pm44xx_errata; 107extern u16 pm44xx_errata;
108#define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id)) 108#define IS_PM44XX_ERRATUM(id) (pm44xx_errata & (id))
109#else 109#else