omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs arrays
Previously, struct omap_hwmod_mpu_irqs arrays were unterminated; and
users of these arrays used the ARRAY_SIZE() macro to determine the
length of the array. However, ARRAY_SIZE() only works when the array
is in the same scope as the macro user.
So far this hasn't been a problem. However, to reduce duplicated
data, a subsequent patch will move common data to a separate, shared
file. When this is done, ARRAY_SIZE() will no longer be usable.
This patch removes ARRAY_SIZE() usage for struct omap_hwmod_mpu_irqs
arrays and uses a sentinel value (irq == -1) as the array terminator
instead.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index 3ec625c..04730d3 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -296,6 +296,7 @@
static struct omap_hwmod omap2420_timer1_hwmod;
static struct omap_hwmod_irq_info omap2420_timer1_mpu_irqs[] = {
{ .irq = 37, },
+ { .irq = -1 }
};
static struct omap_hwmod_addr_space omap2420_timer1_addrs[] = {
@@ -325,7 +326,6 @@
static struct omap_hwmod omap2420_timer1_hwmod = {
.name = "timer1",
.mpu_irqs = omap2420_timer1_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer1_mpu_irqs),
.main_clk = "gpt1_fck",
.prcm = {
.omap2 = {
@@ -346,6 +346,7 @@
static struct omap_hwmod omap2420_timer2_hwmod;
static struct omap_hwmod_irq_info omap2420_timer2_mpu_irqs[] = {
{ .irq = 38, },
+ { .irq = -1 }
};
@@ -367,7 +368,6 @@
static struct omap_hwmod omap2420_timer2_hwmod = {
.name = "timer2",
.mpu_irqs = omap2420_timer2_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer2_mpu_irqs),
.main_clk = "gpt2_fck",
.prcm = {
.omap2 = {
@@ -388,6 +388,7 @@
static struct omap_hwmod omap2420_timer3_hwmod;
static struct omap_hwmod_irq_info omap2420_timer3_mpu_irqs[] = {
{ .irq = 39, },
+ { .irq = -1 }
};
/* l4_core -> timer3 */
@@ -408,7 +409,6 @@
static struct omap_hwmod omap2420_timer3_hwmod = {
.name = "timer3",
.mpu_irqs = omap2420_timer3_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer3_mpu_irqs),
.main_clk = "gpt3_fck",
.prcm = {
.omap2 = {
@@ -429,6 +429,7 @@
static struct omap_hwmod omap2420_timer4_hwmod;
static struct omap_hwmod_irq_info omap2420_timer4_mpu_irqs[] = {
{ .irq = 40, },
+ { .irq = -1 }
};
/* l4_core -> timer4 */
@@ -449,7 +450,6 @@
static struct omap_hwmod omap2420_timer4_hwmod = {
.name = "timer4",
.mpu_irqs = omap2420_timer4_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer4_mpu_irqs),
.main_clk = "gpt4_fck",
.prcm = {
.omap2 = {
@@ -470,6 +470,7 @@
static struct omap_hwmod omap2420_timer5_hwmod;
static struct omap_hwmod_irq_info omap2420_timer5_mpu_irqs[] = {
{ .irq = 41, },
+ { .irq = -1 }
};
/* l4_core -> timer5 */
@@ -490,7 +491,6 @@
static struct omap_hwmod omap2420_timer5_hwmod = {
.name = "timer5",
.mpu_irqs = omap2420_timer5_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer5_mpu_irqs),
.main_clk = "gpt5_fck",
.prcm = {
.omap2 = {
@@ -512,6 +512,7 @@
static struct omap_hwmod omap2420_timer6_hwmod;
static struct omap_hwmod_irq_info omap2420_timer6_mpu_irqs[] = {
{ .irq = 42, },
+ { .irq = -1 }
};
/* l4_core -> timer6 */
@@ -532,7 +533,6 @@
static struct omap_hwmod omap2420_timer6_hwmod = {
.name = "timer6",
.mpu_irqs = omap2420_timer6_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer6_mpu_irqs),
.main_clk = "gpt6_fck",
.prcm = {
.omap2 = {
@@ -553,6 +553,7 @@
static struct omap_hwmod omap2420_timer7_hwmod;
static struct omap_hwmod_irq_info omap2420_timer7_mpu_irqs[] = {
{ .irq = 43, },
+ { .irq = -1 }
};
/* l4_core -> timer7 */
@@ -573,7 +574,6 @@
static struct omap_hwmod omap2420_timer7_hwmod = {
.name = "timer7",
.mpu_irqs = omap2420_timer7_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer7_mpu_irqs),
.main_clk = "gpt7_fck",
.prcm = {
.omap2 = {
@@ -594,6 +594,7 @@
static struct omap_hwmod omap2420_timer8_hwmod;
static struct omap_hwmod_irq_info omap2420_timer8_mpu_irqs[] = {
{ .irq = 44, },
+ { .irq = -1 }
};
/* l4_core -> timer8 */
@@ -614,7 +615,6 @@
static struct omap_hwmod omap2420_timer8_hwmod = {
.name = "timer8",
.mpu_irqs = omap2420_timer8_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer8_mpu_irqs),
.main_clk = "gpt8_fck",
.prcm = {
.omap2 = {
@@ -635,6 +635,7 @@
static struct omap_hwmod omap2420_timer9_hwmod;
static struct omap_hwmod_irq_info omap2420_timer9_mpu_irqs[] = {
{ .irq = 45, },
+ { .irq = -1 }
};
/* l4_core -> timer9 */
@@ -655,7 +656,6 @@
static struct omap_hwmod omap2420_timer9_hwmod = {
.name = "timer9",
.mpu_irqs = omap2420_timer9_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer9_mpu_irqs),
.main_clk = "gpt9_fck",
.prcm = {
.omap2 = {
@@ -676,6 +676,7 @@
static struct omap_hwmod omap2420_timer10_hwmod;
static struct omap_hwmod_irq_info omap2420_timer10_mpu_irqs[] = {
{ .irq = 46, },
+ { .irq = -1 }
};
/* l4_core -> timer10 */
@@ -696,7 +697,6 @@
static struct omap_hwmod omap2420_timer10_hwmod = {
.name = "timer10",
.mpu_irqs = omap2420_timer10_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer10_mpu_irqs),
.main_clk = "gpt10_fck",
.prcm = {
.omap2 = {
@@ -717,6 +717,7 @@
static struct omap_hwmod omap2420_timer11_hwmod;
static struct omap_hwmod_irq_info omap2420_timer11_mpu_irqs[] = {
{ .irq = 47, },
+ { .irq = -1 }
};
/* l4_core -> timer11 */
@@ -737,7 +738,6 @@
static struct omap_hwmod omap2420_timer11_hwmod = {
.name = "timer11",
.mpu_irqs = omap2420_timer11_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer11_mpu_irqs),
.main_clk = "gpt11_fck",
.prcm = {
.omap2 = {
@@ -758,6 +758,7 @@
static struct omap_hwmod omap2420_timer12_hwmod;
static struct omap_hwmod_irq_info omap2420_timer12_mpu_irqs[] = {
{ .irq = 48, },
+ { .irq = -1 }
};
/* l4_core -> timer12 */
@@ -778,7 +779,6 @@
static struct omap_hwmod omap2420_timer12_hwmod = {
.name = "timer12",
.mpu_irqs = omap2420_timer12_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_timer12_mpu_irqs),
.main_clk = "gpt12_fck",
.prcm = {
.omap2 = {
@@ -879,6 +879,7 @@
static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
{ .irq = INT_24XX_UART1_IRQ, },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
@@ -893,7 +894,6 @@
static struct omap_hwmod omap2420_uart1_hwmod = {
.name = "uart1",
.mpu_irqs = uart1_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(uart1_mpu_irqs),
.sdma_reqs = uart1_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(uart1_sdma_reqs),
.main_clk = "uart1_fck",
@@ -916,6 +916,7 @@
static struct omap_hwmod_irq_info uart2_mpu_irqs[] = {
{ .irq = INT_24XX_UART2_IRQ, },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info uart2_sdma_reqs[] = {
@@ -930,7 +931,6 @@
static struct omap_hwmod omap2420_uart2_hwmod = {
.name = "uart2",
.mpu_irqs = uart2_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(uart2_mpu_irqs),
.sdma_reqs = uart2_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(uart2_sdma_reqs),
.main_clk = "uart2_fck",
@@ -953,6 +953,7 @@
static struct omap_hwmod_irq_info uart3_mpu_irqs[] = {
{ .irq = INT_24XX_UART3_IRQ, },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info uart3_sdma_reqs[] = {
@@ -967,7 +968,6 @@
static struct omap_hwmod omap2420_uart3_hwmod = {
.name = "uart3",
.mpu_irqs = uart3_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(uart3_mpu_irqs),
.sdma_reqs = uart3_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(uart3_sdma_reqs),
.main_clk = "uart3_fck",
@@ -1087,6 +1087,7 @@
static struct omap_hwmod_irq_info omap2420_dispc_irqs[] = {
{ .irq = 25 },
+ { .irq = -1 }
};
/* l4_core -> dss_dispc */
@@ -1113,7 +1114,6 @@
.name = "dss_dispc",
.class = &omap2420_dispc_hwmod_class,
.mpu_irqs = omap2420_dispc_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_dispc_irqs),
.main_clk = "dss1_fck",
.prcm = {
.omap2 = {
@@ -1254,6 +1254,7 @@
static struct omap_hwmod_irq_info i2c1_mpu_irqs[] = {
{ .irq = INT_24XX_I2C1_IRQ, },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info i2c1_sdma_reqs[] = {
@@ -1268,7 +1269,6 @@
static struct omap_hwmod omap2420_i2c1_hwmod = {
.name = "i2c1",
.mpu_irqs = i2c1_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(i2c1_mpu_irqs),
.sdma_reqs = i2c1_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(i2c1_sdma_reqs),
.main_clk = "i2c1_fck",
@@ -1293,6 +1293,7 @@
static struct omap_hwmod_irq_info i2c2_mpu_irqs[] = {
{ .irq = INT_24XX_I2C2_IRQ, },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info i2c2_sdma_reqs[] = {
@@ -1307,7 +1308,6 @@
static struct omap_hwmod omap2420_i2c2_hwmod = {
.name = "i2c2",
.mpu_irqs = i2c2_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(i2c2_mpu_irqs),
.sdma_reqs = i2c2_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(i2c2_sdma_reqs),
.main_clk = "i2c2_fck",
@@ -1430,6 +1430,7 @@
/* gpio1 */
static struct omap_hwmod_irq_info omap242x_gpio1_irqs[] = {
{ .irq = 29 }, /* INT_24XX_GPIO_BANK1 */
+ { .irq = -1 }
};
static struct omap_hwmod_ocp_if *omap2420_gpio1_slaves[] = {
@@ -1440,7 +1441,6 @@
.name = "gpio1",
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.mpu_irqs = omap242x_gpio1_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap242x_gpio1_irqs),
.main_clk = "gpios_fck",
.prcm = {
.omap2 = {
@@ -1461,6 +1461,7 @@
/* gpio2 */
static struct omap_hwmod_irq_info omap242x_gpio2_irqs[] = {
{ .irq = 30 }, /* INT_24XX_GPIO_BANK2 */
+ { .irq = -1 }
};
static struct omap_hwmod_ocp_if *omap2420_gpio2_slaves[] = {
@@ -1471,7 +1472,6 @@
.name = "gpio2",
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.mpu_irqs = omap242x_gpio2_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap242x_gpio2_irqs),
.main_clk = "gpios_fck",
.prcm = {
.omap2 = {
@@ -1492,6 +1492,7 @@
/* gpio3 */
static struct omap_hwmod_irq_info omap242x_gpio3_irqs[] = {
{ .irq = 31 }, /* INT_24XX_GPIO_BANK3 */
+ { .irq = -1 }
};
static struct omap_hwmod_ocp_if *omap2420_gpio3_slaves[] = {
@@ -1502,7 +1503,6 @@
.name = "gpio3",
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.mpu_irqs = omap242x_gpio3_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap242x_gpio3_irqs),
.main_clk = "gpios_fck",
.prcm = {
.omap2 = {
@@ -1523,6 +1523,7 @@
/* gpio4 */
static struct omap_hwmod_irq_info omap242x_gpio4_irqs[] = {
{ .irq = 32 }, /* INT_24XX_GPIO_BANK4 */
+ { .irq = -1 }
};
static struct omap_hwmod_ocp_if *omap2420_gpio4_slaves[] = {
@@ -1533,7 +1534,6 @@
.name = "gpio4",
.flags = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
.mpu_irqs = omap242x_gpio4_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap242x_gpio4_irqs),
.main_clk = "gpios_fck",
.prcm = {
.omap2 = {
@@ -1580,6 +1580,7 @@
{ .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */
{ .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */
{ .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */
+ { .irq = -1 }
};
/* dma_system -> L3 */
@@ -1613,7 +1614,6 @@
.name = "dma",
.class = &omap2420_dma_hwmod_class,
.mpu_irqs = omap2420_dma_system_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_dma_system_irqs),
.main_clk = "core_l3_ck",
.slaves = omap2420_dma_system_slaves,
.slaves_cnt = ARRAY_SIZE(omap2420_dma_system_slaves),
@@ -1650,6 +1650,7 @@
static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {
{ .name = "dsp", .irq = 26 },
{ .name = "iva", .irq = 34 },
+ { .irq = -1 }
};
/* l4_core -> mailbox */
@@ -1669,7 +1670,6 @@
.name = "mailbox",
.class = &omap2420_mailbox_hwmod_class,
.mpu_irqs = omap2420_mailbox_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mailbox_irqs),
.main_clk = "mailboxes_ick",
.prcm = {
.omap2 = {
@@ -1711,6 +1711,7 @@
/* mcspi1 */
static struct omap_hwmod_irq_info omap2420_mcspi1_mpu_irqs[] = {
{ .irq = 65 },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info omap2420_mcspi1_sdma_reqs[] = {
@@ -1735,7 +1736,6 @@
static struct omap_hwmod omap2420_mcspi1_hwmod = {
.name = "mcspi1_hwmod",
.mpu_irqs = omap2420_mcspi1_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcspi1_mpu_irqs),
.sdma_reqs = omap2420_mcspi1_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcspi1_sdma_reqs),
.main_clk = "mcspi1_fck",
@@ -1758,6 +1758,7 @@
/* mcspi2 */
static struct omap_hwmod_irq_info omap2420_mcspi2_mpu_irqs[] = {
{ .irq = 66 },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info omap2420_mcspi2_sdma_reqs[] = {
@@ -1778,7 +1779,6 @@
static struct omap_hwmod omap2420_mcspi2_hwmod = {
.name = "mcspi2_hwmod",
.mpu_irqs = omap2420_mcspi2_mpu_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcspi2_mpu_irqs),
.sdma_reqs = omap2420_mcspi2_sdma_reqs,
.sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcspi2_sdma_reqs),
.main_clk = "mcspi2_fck",
@@ -1811,6 +1811,7 @@
static struct omap_hwmod_irq_info omap2420_mcbsp1_irqs[] = {
{ .name = "tx", .irq = 59 },
{ .name = "rx", .irq = 60 },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info omap2420_mcbsp1_sdma_chs[] = {
@@ -1836,7 +1837,6 @@
.name = "mcbsp1",
.class = &omap2420_mcbsp_hwmod_class,
.mpu_irqs = omap2420_mcbsp1_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcbsp1_irqs),
.sdma_reqs = omap2420_mcbsp1_sdma_chs,
.sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcbsp1_sdma_chs),
.main_clk = "mcbsp1_fck",
@@ -1858,6 +1858,7 @@
static struct omap_hwmod_irq_info omap2420_mcbsp2_irqs[] = {
{ .name = "tx", .irq = 62 },
{ .name = "rx", .irq = 63 },
+ { .irq = -1 }
};
static struct omap_hwmod_dma_info omap2420_mcbsp2_sdma_chs[] = {
@@ -1883,7 +1884,6 @@
.name = "mcbsp2",
.class = &omap2420_mcbsp_hwmod_class,
.mpu_irqs = omap2420_mcbsp2_irqs,
- .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcbsp2_irqs),
.sdma_reqs = omap2420_mcbsp2_sdma_chs,
.sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcbsp2_sdma_chs),
.main_clk = "mcbsp2_fck",