diff options
| author | Paul Walmsley <paul@pwsan.com> | 2011-07-09 19:14:06 -0600 | 
|---|---|---|
| committer | Paul Walmsley <paul@pwsan.com> | 2011-07-09 19:14:06 -0600 | 
| commit | 212738a4499d278254ed6fdb400e3b4be4cb1de2 (patch) | |
| tree | caa57aa80c343a20eaa7a5e32b7205132b561669 /arch/arm/plat-omap/include/plat/omap_hwmod.h | |
| parent | ded11383fc14a7483cf30700ffc253caf37c9933 (diff) | |
| download | olio-linux-3.10-212738a4499d278254ed6fdb400e3b4be4cb1de2.tar.xz olio-linux-3.10-212738a4499d278254ed6fdb400e3b4be4cb1de2.zip  | |
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>
Diffstat (limited to 'arch/arm/plat-omap/include/plat/omap_hwmod.h')
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap_hwmod.h | 8 | 
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 523e0b585b6..3bd6d1d9c0d 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -98,7 +98,7 @@ struct omap_hwmod_mux_info {  /**   * struct omap_hwmod_irq_info - MPU IRQs used by the hwmod   * @name: name of the IRQ channel (module local name) - * @irq_ch: IRQ channel ID + * @irq: IRQ channel ID (should be non-negative except -1 = terminator)   *   * @name should be something short, e.g., "tx" or "rx".  It is for use   * by platform_get_resource_byname().  It is defined locally to the @@ -106,7 +106,7 @@ struct omap_hwmod_mux_info {   */  struct omap_hwmod_irq_info {  	const char	*name; -	u16		irq; +	s16		irq;  };  /** @@ -466,7 +466,7 @@ struct omap_hwmod_class {   * @name: name of the hwmod   * @class: struct omap_hwmod_class * to the class of this hwmod   * @od: struct omap_device currently associated with this hwmod (internal use) - * @mpu_irqs: ptr to an array of MPU IRQs (see also mpu_irqs_cnt) + * @mpu_irqs: ptr to an array of MPU IRQs   * @sdma_reqs: ptr to an array of System DMA request IDs (see sdma_reqs_cnt)   * @prcm: PRCM data pertaining to this hwmod   * @main_clk: main clock: OMAP clock name @@ -480,7 +480,6 @@ struct omap_hwmod_class {   * @_sysc_cache: internal-use hwmod flags   * @_mpu_rt_va: cached register target start address (internal use)   * @_mpu_port_index: cached MPU register target slave ID (internal use) - * @mpu_irqs_cnt: number of @mpu_irqs   * @sdma_reqs_cnt: number of @sdma_reqs   * @opt_clks_cnt: number of @opt_clks   * @master_cnt: number of @master entries @@ -529,7 +528,6 @@ struct omap_hwmod {  	u16				flags;  	u8				_mpu_port_index;  	u8				response_lat; -	u8				mpu_irqs_cnt;  	u8				sdma_reqs_cnt;  	u8				rst_lines_cnt;  	u8				opt_clks_cnt;  |