aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2017-10-10 17:27:13 -0400
committerTony Lindgren <tony@atomide.com>2017-10-10 17:27:13 -0400
commit3da521672568702c58767de69b5b0b58c8095fae (patch)
treebfbf86cfeb27a9bf3c0150712a12eb3bbeb7372d
parent82e5051ba4e7c6d3820e3ab87c1f20a6531d64a8 (diff)
ARM: OMAP4: Remove legacy IRQ for PRM
We have the PRM IRQ mapped in device tree and this legacy code is no longer needed. Cc: Lokesh Vutla <lokeshvutla@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Tero Kristo <t-kristo@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/prcm-common.h1
-rw-r--r--arch/arm/mach-omap2/prm.h2
-rw-r--r--arch/arm/mach-omap2/prm44xx.c21
-rw-r--r--arch/arm/mach-omap2/prm_common.c12
4 files changed, 6 insertions, 30 deletions
diff --git a/arch/arm/mach-omap2/prcm-common.h b/arch/arm/mach-omap2/prcm-common.h
index ee7041d523cf..0592b23902c6 100644
--- a/arch/arm/mach-omap2/prcm-common.h
+++ b/arch/arm/mach-omap2/prcm-common.h
@@ -506,7 +506,6 @@ struct omap_prcm_irq_setup {
506 u8 nr_irqs; 506 u8 nr_irqs;
507 const struct omap_prcm_irq *irqs; 507 const struct omap_prcm_irq *irqs;
508 int irq; 508 int irq;
509 unsigned int (*xlate_irq)(unsigned int);
510 void (*read_pending_irqs)(unsigned long *events); 509 void (*read_pending_irqs)(unsigned long *events);
511 void (*ocp_barrier)(void); 510 void (*ocp_barrier)(void);
512 void (*save_and_clear_irqen)(u32 *saved_mask); 511 void (*save_and_clear_irqen)(u32 *saved_mask);
diff --git a/arch/arm/mach-omap2/prm.h b/arch/arm/mach-omap2/prm.h
index 94dc3565add8..f0fb50871055 100644
--- a/arch/arm/mach-omap2/prm.h
+++ b/arch/arm/mach-omap2/prm.h
@@ -29,11 +29,9 @@ int omap2_prcm_base_init(void);
29 * 29 *
30 * PRM_HAS_IO_WAKEUP: has IO wakeup capability 30 * PRM_HAS_IO_WAKEUP: has IO wakeup capability
31 * PRM_HAS_VOLTAGE: has voltage domains 31 * PRM_HAS_VOLTAGE: has voltage domains
32 * PRM_IRQ_DEFAULT: use default irq number for PRM irq
33 */ 32 */
34#define PRM_HAS_IO_WAKEUP BIT(0) 33#define PRM_HAS_IO_WAKEUP BIT(0)
35#define PRM_HAS_VOLTAGE BIT(1) 34#define PRM_HAS_VOLTAGE BIT(1)
36#define PRM_IRQ_DEFAULT BIT(2)
37 35
38/* 36/*
39 * MAX_MODULE_SOFTRESET_WAIT: Maximum microseconds to wait for OMAP 37 * MAX_MODULE_SOFTRESET_WAIT: Maximum microseconds to wait for OMAP
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
index 1c0c1663f078..acb95936dfe7 100644
--- a/arch/arm/mach-omap2/prm44xx.c
+++ b/arch/arm/mach-omap2/prm44xx.c
@@ -50,8 +50,6 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = {
50 .nr_regs = 2, 50 .nr_regs = 2,
51 .irqs = omap4_prcm_irqs, 51 .irqs = omap4_prcm_irqs,
52 .nr_irqs = ARRAY_SIZE(omap4_prcm_irqs), 52 .nr_irqs = ARRAY_SIZE(omap4_prcm_irqs),
53 .irq = 11 + OMAP44XX_IRQ_GIC_START,
54 .xlate_irq = omap4_xlate_irq,
55 .read_pending_irqs = &omap44xx_prm_read_pending_irqs, 53 .read_pending_irqs = &omap44xx_prm_read_pending_irqs,
56 .ocp_barrier = &omap44xx_prm_ocp_barrier, 54 .ocp_barrier = &omap44xx_prm_ocp_barrier,
57 .save_and_clear_irqen = &omap44xx_prm_save_and_clear_irqen, 55 .save_and_clear_irqen = &omap44xx_prm_save_and_clear_irqen,
@@ -743,23 +741,10 @@ static int omap44xx_prm_late_init(void)
743 return 0; 741 return 0;
744 742
745 irq_num = of_irq_get(prm_init_data->np, 0); 743 irq_num = of_irq_get(prm_init_data->np, 0);
746 /* 744 if (irq_num == -EPROBE_DEFER)
747 * Already have OMAP4 IRQ num. For all other platforms, we need 745 return irq_num;
748 * IRQ numbers from DT
749 */
750 if (irq_num <= 0 && !(prm_init_data->flags & PRM_IRQ_DEFAULT)) {
751 if (irq_num == -EPROBE_DEFER)
752 return irq_num;
753
754 /* Have nothing to do */
755 return 0;
756 }
757 746
758 /* Once OMAP4 DT is filled as well */ 747 omap4_prcm_irq_setup.irq = irq_num;
759 if (irq_num > 0) {
760 omap4_prcm_irq_setup.irq = irq_num;
761 omap4_prcm_irq_setup.xlate_irq = NULL;
762 }
763 748
764 omap44xx_prm_enable_io_wakeup(); 749 omap44xx_prm_enable_io_wakeup();
765 750
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 09180a59b1c9..021b5a8b9c0a 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -218,10 +218,7 @@ void omap_prcm_irq_cleanup(void)
218 kfree(prcm_irq_setup->priority_mask); 218 kfree(prcm_irq_setup->priority_mask);
219 prcm_irq_setup->priority_mask = NULL; 219 prcm_irq_setup->priority_mask = NULL;
220 220
221 if (prcm_irq_setup->xlate_irq) 221 irq = prcm_irq_setup->irq;
222 irq = prcm_irq_setup->xlate_irq(prcm_irq_setup->irq);
223 else
224 irq = prcm_irq_setup->irq;
225 irq_set_chained_handler(irq, NULL); 222 irq_set_chained_handler(irq, NULL);
226 223
227 if (prcm_irq_setup->base_irq > 0) 224 if (prcm_irq_setup->base_irq > 0)
@@ -307,10 +304,7 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)
307 1 << (offset & 0x1f); 304 1 << (offset & 0x1f);
308 } 305 }
309 306
310 if (irq_setup->xlate_irq) 307 irq = irq_setup->irq;
311 irq = irq_setup->xlate_irq(irq_setup->irq);
312 else
313 irq = irq_setup->irq;
314 irq_set_chained_handler(irq, omap_prcm_irq_handler); 308 irq_set_chained_handler(irq, omap_prcm_irq_handler);
315 309
316 irq_setup->base_irq = irq_alloc_descs(-1, 0, irq_setup->nr_regs * 32, 310 irq_setup->base_irq = irq_alloc_descs(-1, 0, irq_setup->nr_regs * 32,
@@ -671,7 +665,7 @@ static struct omap_prcm_init_data omap4_prm_data __initdata = {
671 .index = TI_CLKM_PRM, 665 .index = TI_CLKM_PRM,
672 .init = omap44xx_prm_init, 666 .init = omap44xx_prm_init,
673 .device_inst_offset = OMAP4430_PRM_DEVICE_INST, 667 .device_inst_offset = OMAP4430_PRM_DEVICE_INST,
674 .flags = PRM_HAS_IO_WAKEUP | PRM_HAS_VOLTAGE | PRM_IRQ_DEFAULT, 668 .flags = PRM_HAS_IO_WAKEUP | PRM_HAS_VOLTAGE,
675}; 669};
676#endif 670#endif
677 671