Skip to contentSkip to conversation

OMAP: Update nr_irqs field in machine descriptors

PATCH New Venkatraman S 4 participants 9 messages Aug 24, 2011 – Oct 7, 2011

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

As part of an effort to get single ARM kernel binary [1], multiple definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

[1]: https://blueprints.launchpad.net/ubuntu/+spec/kernel-maverick-arm-single-zimage

Venkatraman S (2):
omap2+: Populate nr_irqs field in machine descriptors
omap1: Populate nr_irqs field in machine descriptors

 arch/arm/mach-omap1/board-ams-delta.c      |    1 +
 arch/arm/mach-omap1/board-fsample.c        |    1 +
 arch/arm/mach-omap1/board-generic.c        |    1 +
 arch/arm/mach-omap1/board-h2.c             |    1 +
 arch/arm/mach-omap1/board-h3.c             |    1 +
 arch/arm/mach-omap1/board-htcherald.c      |    1 +
 arch/arm/mach-omap1/board-innovator.c      |    1 +
 arch/arm/mach-omap1/board-nokia770.c       |    1 +
 arch/arm/mach-omap1/board-osk.c            |    1 +
 arch/arm/mach-omap1/board-palmte.c         |    1 +
 arch/arm/mach-omap1/board-palmtt.c         |    1 +
 arch/arm/mach-omap1/board-palmz71.c        |    1 +
 arch/arm/mach-omap1/board-perseus2.c       |    1 +
 arch/arm/mach-omap1/board-sx1.c            |    1 +
 arch/arm/mach-omap1/board-voiceblue.c      |    1 +
 arch/arm/mach-omap2/board-2430sdp.c        |    1 +
 arch/arm/mach-omap2/board-3430sdp.c        |    1 +
 arch/arm/mach-omap2/board-3630sdp.c        |    1 +
 arch/arm/mach-omap2/board-4430sdp.c        |    1 +
 arch/arm/mach-omap2/board-am3517crane.c    |    1 +
 arch/arm/mach-omap2/board-am3517evm.c      |    1 +
 arch/arm/mach-omap2/board-apollon.c        |    1 +
 arch/arm/mach-omap2/board-cm-t35.c         |    2 ++
 arch/arm/mach-omap2/board-cm-t3517.c       |    1 +
 arch/arm/mach-omap2/board-devkit8000.c     |    1 +
 arch/arm/mach-omap2/board-generic.c        |    1 +
 arch/arm/mach-omap2/board-h4.c             |    1 +
 arch/arm/mach-omap2/board-igep0020.c       |    2 ++
 arch/arm/mach-omap2/board-ldp.c            |    1 +
 arch/arm/mach-omap2/board-n8x0.c           |    3 +++
 arch/arm/mach-omap2/board-omap3beagle.c    |    1 +
 arch/arm/mach-omap2/board-omap3evm.c       |    1 +
 arch/arm/mach-omap2/board-omap3logic.c     |    2 ++
 arch/arm/mach-omap2/board-omap3pandora.c   |    1 +
 arch/arm/mach-omap2/board-omap3stalker.c   |    1 +
 arch/arm/mach-omap2/board-omap3touchbook.c |    1 +
 arch/arm/mach-omap2/board-omap4panda.c     |    1 +
 arch/arm/mach-omap2/board-overo.c          |    1 +
 arch/arm/mach-omap2/board-rm680.c          |    1 +
 arch/arm/mach-omap2/board-rx51.c           |    1 +
 arch/arm/mach-omap2/board-ti8168evm.c      |    1 +
 arch/arm/mach-omap2/board-zoom.c           |    2 ++
 42 files changed, 48 insertions(+), 0 deletions(-)
#1 lore raw

PATCH 1/2 omap2+: Populate nr_irqs field in machine descriptors

Machine descriptors in board files should have valid nr_irqs value so that irq handler code can probe it.

---
 arch/arm/mach-omap2/board-2430sdp.c        |    1 +
 arch/arm/mach-omap2/board-3430sdp.c        |    1 +
 arch/arm/mach-omap2/board-3630sdp.c        |    1 +
 arch/arm/mach-omap2/board-4430sdp.c        |    1 +
 arch/arm/mach-omap2/board-am3517crane.c    |    1 +
 arch/arm/mach-omap2/board-am3517evm.c      |    1 +
 arch/arm/mach-omap2/board-apollon.c        |    1 +
 arch/arm/mach-omap2/board-cm-t35.c         |    2 ++
 arch/arm/mach-omap2/board-cm-t3517.c       |    1 +
 arch/arm/mach-omap2/board-devkit8000.c     |    1 +
 arch/arm/mach-omap2/board-generic.c        |    1 +
 arch/arm/mach-omap2/board-h4.c             |    1 +
 arch/arm/mach-omap2/board-igep0020.c       |    2 ++
 arch/arm/mach-omap2/board-ldp.c            |    1 +
 arch/arm/mach-omap2/board-n8x0.c           |    3 +++
 arch/arm/mach-omap2/board-omap3beagle.c    |    1 +
 arch/arm/mach-omap2/board-omap3evm.c       |    1 +
 arch/arm/mach-omap2/board-omap3logic.c     |    2 ++
 arch/arm/mach-omap2/board-omap3pandora.c   |    1 +
 arch/arm/mach-omap2/board-omap3stalker.c   |    1 +
 arch/arm/mach-omap2/board-omap3touchbook.c |    1 +
 arch/arm/mach-omap2/board-omap4panda.c     |    1 +
 arch/arm/mach-omap2/board-overo.c          |    1 +
 arch/arm/mach-omap2/board-rm680.c          |    1 +
 arch/arm/mach-omap2/board-rx51.c           |    1 +
 arch/arm/mach-omap2/board-ti8168evm.c      |    1 +
 arch/arm/mach-omap2/board-zoom.c           |    2 ++
 27 files changed, 33 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +1 -0
index 2028464..68edea8 100644
@@ -263,4 +263,5 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_2430sdp_init,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-3430sdp.c +1 -0
index bd600cf..e4a323b 100644
@@ -736,4 +736,5 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_3430sdp_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-3630sdp.c +1 -0
index e4f37b5..2183ea8 100644
@@ -222,4 +222,5 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_sdp_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-4430sdp.c +1 -0
index c7cef44..88e7848 100644
@@ -845,4 +845,5 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
 	.init_irq	= gic_init_irq,
 	.init_machine	= omap_4430sdp_init,
 	.timer		= &omap4_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-am3517crane.c +1 -0
index 933e935..6d494d6 100644
@@ -105,4 +105,5 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= am3517_crane_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-am3517evm.c +1 -0
index f3006c3..f5f169c 100644
@@ -497,4 +497,5 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= am3517_evm_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-apollon.c +1 -0
index 7021170..b817a0d 100644
@@ -357,4 +357,5 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_apollon_init,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-cm-t35.c +2 -0
index 3af8aab..d22ec1c 100644
@@ -641,6 +641,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= cm_t35_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(CM_T3730, "Compulab CM-T3730")
@@ -651,4 +652,5 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730")
 	.init_irq       = omap3_init_irq,
 	.init_machine   = cm_t3730_init,
 	.timer          = &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-cm-t3517.c +1 -0
index 05c72f4..5569077 100644
@@ -306,4 +306,5 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= cm_t3517_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-devkit8000.c +1 -0
index b6002ec..a6cbf61 100644
@@ -674,4 +674,5 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
 	.init_irq	= devkit8000_init_irq,
 	.init_machine	= devkit8000_init,
 	.timer		= &omap3_secure_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-generic.c +1 -0
index 54db41a..ad59314 100644
@@ -73,4 +73,5 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= omap_generic_init,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-h4.c +1 -0
index 45de2b3..37cad3e 100644
@@ -389,4 +389,5 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
 	.init_irq	= omap_h4_init_irq,
 	.init_machine	= omap_h4_init,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-igep0020.c +2 -0
index 35be778..786849a 100644
@@ -679,6 +679,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= igep_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(IGEP0030, "IGEP OMAP3 module")
@@ -689,4 +690,5 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= igep_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-ldp.c +1 -0
index 218764c..d06c656 100644
@@ -340,4 +340,5 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_ldp_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-n8x0.c +3 -0
index e11f0c5..2de8c03 100644
@@ -702,6 +702,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(NOKIA_N810, "Nokia N810")
@@ -712,6 +713,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
@@ -722,4 +724,5 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
 	.init_irq	= omap2_init_irq,
 	.init_machine	= n8x0_init_machine,
 	.timer		= &omap2_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3beagle.c +1 -0
index 3ae16b4..2b2f7a5 100644
@@ -564,4 +564,5 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
 	.init_irq	= omap3_beagle_init_irq,
 	.init_machine	= omap3_beagle_init,
 	.timer		= &omap3_secure_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3evm.c +1 -0
index c452b3f..a322609 100644
@@ -688,4 +688,5 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3_evm_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3logic.c +2 -0
index 703aeb5..9b438dc 100644
@@ -215,6 +215,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3logic_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
@@ -224,4 +225,5 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3logic_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3pandora.c +1 -0
index 080d7bd..441a35e 100644
@@ -613,4 +613,5 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap3pandora_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3stalker.c +1 -0
index 8e10498..c491bd1 100644
@@ -500,4 +500,5 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
 	.init_irq		= omap3_stalker_init_irq,
 	.init_machine		= omap3_stalker_init,
 	.timer			= &omap3_secure_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap3touchbook.c +1 -0
index 852ea04..24a1c32 100644
@@ -411,4 +411,5 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board")
 	.init_irq	= omap3_touchbook_init_irq,
 	.init_machine	= omap3_touchbook_init,
 	.timer		= &omap3_secure_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-omap4panda.c +1 -0
index 9aaa960..451a0a6 100644
@@ -590,4 +590,5 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
 	.init_irq	= gic_init_irq,
 	.init_machine	= omap4_panda_init,
 	.timer		= &omap4_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-overo.c +1 -0
index f949a99..1c0175b 100644
@@ -568,4 +568,5 @@ MACHINE_START(OVERO, "Gumstix Overo")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= overo_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-rm680.c +1 -0
index 7dfed24..596b713 100644
@@ -160,4 +160,5 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= rm680_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-rx51.c +1 -0
index 5ea142f..1e38168 100644
@@ -163,4 +163,5 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= rx51_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-ti8168evm.c +1 -0
index a85d5b0..b1d6420 100644
@@ -54,4 +54,5 @@ MACHINE_START(TI8168EVM, "ti8168evm")
 	.init_irq	= ti816x_init_irq,
 	.timer		= &omap3_timer,
 	.init_machine	= ti8168_evm_init,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap2/board-zoom.c +2 -0
index 8a98c3c..080713e 100644
@@ -140,6 +140,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_zoom_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
@@ -150,4 +151,5 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
 	.init_irq	= omap3_init_irq,
 	.init_machine	= omap_zoom_init,
 	.timer		= &omap3_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
Signature · 1 line
1.7.1
#2 lore raw

PATCH 2/2 omap1: Populate nr_irqs field in machine descriptors

In reply to Venkatraman S

Machine descriptors in board files should have valid nr_irqs value so that irq handler code can probe it.

---
 arch/arm/mach-omap1/board-ams-delta.c |    1 +
 arch/arm/mach-omap1/board-fsample.c   |    1 +
 arch/arm/mach-omap1/board-generic.c   |    1 +
 arch/arm/mach-omap1/board-h2.c        |    1 +
 arch/arm/mach-omap1/board-h3.c        |    1 +
 arch/arm/mach-omap1/board-htcherald.c |    1 +
 arch/arm/mach-omap1/board-innovator.c |    1 +
 arch/arm/mach-omap1/board-nokia770.c  |    1 +
 arch/arm/mach-omap1/board-osk.c       |    1 +
 arch/arm/mach-omap1/board-palmte.c    |    1 +
 arch/arm/mach-omap1/board-palmtt.c    |    1 +
 arch/arm/mach-omap1/board-palmz71.c   |    1 +
 arch/arm/mach-omap1/board-perseus2.c  |    1 +
 arch/arm/mach-omap1/board-sx1.c       |    1 +
 arch/arm/mach-omap1/board-voiceblue.c |    1 +
 15 files changed, 15 insertions(+), 0 deletions(-)
arch/arm/mach-omap1/board-ams-delta.c +1 -0
index 312ea6b..496c07f 100644
@@ -392,6 +392,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
 	.init_irq	= ams_delta_init_irq,
 	.init_machine	= ams_delta_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
 
 EXPORT_SYMBOL(ams_delta_latch1_write);
arch/arm/mach-omap1/board-fsample.c +1 -0
index a6b1bea..c76373e 100644
@@ -395,4 +395,5 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample")
 	.init_irq	= omap_fsample_init_irq,
 	.init_machine	= omap_fsample_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-generic.c +1 -0
index 04fc356..f5cec3e 100644
@@ -100,4 +100,5 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
 	.init_irq	= omap_generic_init_irq,
 	.init_machine	= omap_generic_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-h2.c +1 -0
index cb7fb1a..7dca560 100644
@@ -467,4 +467,5 @@ MACHINE_START(OMAP_H2, "TI-H2")
 	.init_irq	= h2_init_irq,
 	.init_machine	= h2_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-h3.c +1 -0
index 31f3487..bd27504 100644
@@ -455,4 +455,5 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
 	.init_irq	= h3_init_irq,
 	.init_machine	= h3_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-htcherald.c +1 -0
index 36e06ea..380310c 100644
@@ -617,4 +617,5 @@ MACHINE_START(HERALD, "HTC Herald")
 	.init_irq       = htcherald_init_irq,
 	.init_machine   = htcherald_init,
 	.timer          = &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-innovator.c +1 -0
index 0b1ba46..64b9764 100644
@@ -465,4 +465,5 @@ MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
 	.init_irq	= innovator_init_irq,
 	.init_machine	= innovator_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-nokia770.c +1 -0
index 5469ce2..77e8bad 100644
@@ -270,4 +270,5 @@ MACHINE_START(NOKIA770, "Nokia 770")
 	.init_irq	= omap_nokia770_init_irq,
 	.init_machine	= omap_nokia770_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-osk.c +1 -0
index b08a213..5c9f6ec 100644
@@ -589,4 +589,5 @@ MACHINE_START(OMAP_OSK, "TI-OSK")
 	.init_irq	= osk_init_irq,
 	.init_machine	= osk_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-palmte.c +1 -0
index 459cb6b..8266a65 100644
@@ -281,4 +281,5 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
 	.init_irq	= omap_palmte_init_irq,
 	.init_machine	= omap_palmte_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-palmtt.c +1 -0
index b214f45..f2f29eb 100644
@@ -327,4 +327,5 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T")
 	.init_irq	= omap_palmtt_init_irq,
 	.init_machine	= omap_palmtt_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-palmz71.c +1 -0
index 9b0ea48..e2f2c06 100644
@@ -347,4 +347,5 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71")
 	.init_irq	= omap_palmz71_init_irq,
 	.init_machine	= omap_palmz71_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-perseus2.c +1 -0
index 67acd41..6f99559 100644
@@ -356,4 +356,5 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
 	.init_irq	= omap_perseus2_init_irq,
 	.init_machine	= omap_perseus2_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-sx1.c +1 -0
index 9c3b7c5..55f2801 100644
@@ -427,4 +427,5 @@ MACHINE_START(SX1, "OMAP310 based Siemens SX1")
 	.init_irq	= omap_sx1_init_irq,
 	.init_machine	= omap_sx1_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
arch/arm/mach-omap1/board-voiceblue.c +1 -0
index 036edc0..a955650 100644
@@ -307,4 +307,5 @@ MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
 	.init_irq	= voiceblue_init_irq,
 	.init_machine	= voiceblue_init,
 	.timer		= &omap1_timer,
+	.nr_irqs 	= NR_IRQS,
 MACHINE_END
Signature · 1 line
1.7.1
#3 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

In reply to Venkatraman S

Hi Venkat,

Quoted 8 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Thanks,
Benoit

#4 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

Quoted 13 lines · Benoit

Hi Venkat,

Quoted 9 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple ?definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Quoted 5 lines

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Currently, the goal is to get rid of the singleton nature of NR_IRQS. Then it just becomes a property of the platform, and the arm common code should not see this define. This cleanup has to be done across multiple SoCs, not just OMAP.

After I get to complete some meaningful cleanup of NR_IRQS, I can look into the static defines that you mention.

Best regards,
Venkat.

maintainer
#5 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

Quoted 20 lines · S, Venkatraman
Quoted 13 lines · Benoit

Hi Venkat,

Quoted 9 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple ?definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Quoted 5 lines

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Quoted 7 lines

Currently, the goal is to get rid of the singleton nature of NR_IRQS. Then it just becomes a property of the platform, and the arm common code should not see this define. This cleanup has to be done across multiple SoCs, not just OMAP.

After I get to complete some meaningful cleanup of NR_IRQS, I can look into the static defines that you mention.

I suggest we wait on this patch as the NR_IRQS should be the board specific true number of interrupts including chained interrupts from external devices like twl. So just setting it to NR_IRQS does not help much. Also, the board-*.c files will be going aways with device tree at some point.

Regards,

Tony

#6 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

Quoted 26 lines · Tony Lindgren
Quoted 25 lines · S, Venkatraman
Quoted 13 lines · Benoit

Hi Venkat,

Quoted 9 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple ?definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Quoted 5 lines

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Currently, the goal is to get rid of the singleton nature of NR_IRQS. Then it just becomes a property of the platform, and the arm common code should not see this define. This cleanup has to be done across multiple SoCs, not just OMAP.

Quoted 8 lines
Quoted 2 lines

After I get to complete some meaningful cleanup of NR_IRQS, I can look into the static defines that you mention.

I suggest we wait on this patch as the NR_IRQS should be the board specific true number of interrupts including chained interrupts from external devices like twl. So just setting it to NR_IRQS does not help much. Also, the board-*.c files will be going aways with device tree at some point.

This is prerequisite to some other cleanup orthogonal to DT being worked in parallel. I would prefer if DT wasn't a serialization point for this.

Nicolas

maintainer
#7 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

Quoted 37 lines · Nicolas Pitre
Quoted 26 lines · Tony Lindgren
Quoted 25 lines · S, Venkatraman
Quoted 13 lines · Benoit

Hi Venkat,

Quoted 9 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple ?definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Quoted 5 lines

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Currently, the goal is to get rid of the singleton nature of NR_IRQS. Then it just becomes a property of the platform, and the arm common code should not see this define. This cleanup has to be done across multiple SoCs, not just OMAP.

Quoted 8 lines
Quoted 2 lines

After I get to complete some meaningful cleanup of NR_IRQS, I can look into the static defines that you mention.

I suggest we wait on this patch as the NR_IRQS should be the board specific true number of interrupts including chained interrupts from external devices like twl. So just setting it to NR_IRQS does not help much. Also, the board-*.c files will be going aways with device tree at some point.

Quoted 3 lines

This is prerequisite to some other cleanup orthogonal to DT being worked in parallel. I would prefer if DT wasn't a serialization point for this.

I see. How about let's populate the real number of interrupts for the known boards then while at it.

Tony

#8 lore raw

cover OMAP: Update nr_irqs field in machine descriptors

Quoted 38 lines · Tony Lindgren
Quoted 37 lines · Nicolas Pitre
Quoted 34 lines · Tony Lindgren
Quoted 20 lines · S, Venkatraman
Quoted 13 lines · Benoit

Hi Venkat,

Quoted 9 lines · Venkatraman

As part of an effort to get single ARM kernel binary [1], multiple ?definitions of NR_IRQS under various platforms have to be reconciled and abstracted away from common code.

This patch series takes the small step of populating the machine descriptors with the pre-existing nr_irqs field. Eventually, the common irq handler code will only look at this field and not the compile time constant.

Quoted 5 lines

Not related to this patch, but still on that topic. The current NR_IRQS depends as well on board stuff, like for example : the Phoenix IRQs:TWL6030_IRQ_BASE, TWL6040_CODEC_IRQ_BASE.
Is there a plan to get rid of this static defines?

Quoted 7 lines

Currently, the goal is to get rid of the singleton nature of NR_IRQS. Then it just becomes a property of the platform, and the arm common code should not see this define. This cleanup has to be done across multiple SoCs, not just OMAP.

After I get to complete some meaningful cleanup of NR_IRQS, I can look into the static defines that you mention.

I suggest we wait on this patch as the NR_IRQS should be the board specific true number of interrupts including chained interrupts from external devices like twl. So just setting it to NR_IRQS does not help much. Also, the board-*.c files will be going aways with device tree at some point.

Quoted 6 lines
Quoted 3 lines

This is prerequisite to some other cleanup orthogonal to DT being worked in parallel. I would prefer if DT wasn't a serialization point for this.

I see. How about let's populate the real number of interrupts for the known boards then while at it.

Sure, if you know what you are doing (which I'm sure you do). Otherwise using NR_IRQS is more or less a functional no-op wrt the current situation, and therefore what I would have used myself because I don't know much about the various OMAP boards.

Nicolas