[PATCH v2 03/19] ARM: at91: make matrix register base soc independent

Ryan Mallon rmallon at gmail.com
Wed Feb 22 17:17:59 EST 2012


On 22/02/12 20:39, Nicolas Ferre wrote:

> From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
> Cc: linux-usb at vger.kernel.org
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>


Looks okay, one comment (for future) below, but otherwise:

Reviewed-by: Ryan Mallon <rmallon at gmail.com>

<snip>

> diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
> index 8bdba2a..5fd6fe8 100644
> --- a/arch/arm/mach-at91/at91sam9263.c
> +++ b/arch/arm/mach-at91/at91sam9263.c
> @@ -306,6 +306,7 @@ static void __init at91sam9263_ioremap_registers(void)
>  	at91sam926x_ioremap_pit(AT91SAM9263_BASE_PIT);
>  	at91sam9_ioremap_smc(0, AT91SAM9263_BASE_SMC0);
>  	at91sam9_ioremap_smc(1, AT91SAM9263_BASE_SMC1);
> +	at91_ioremap_matrix(AT91SAM9263_BASE_MATRIX);


Not necessarily for this patch set, but this list of functions is
getting long enough that it could be abstracted away by a table.
Something like:

  struct at91_sys_device {
	const char *name;
	void __iomem **base;
	const unsigned long mem_start;
	const unsigned long mem_size;
  };

  ...

  static const struct
  at91_sys_device at91sam9263_sys_devices[] __initconst = {
	{"PIT",	&at91_pit_base,
	 AT91SAM9263_BASE_PIT, AT91_PIT_SIZE},
	...
	{"matrix", &at91_matrix_base,
	 AT91SAM9263_BASE_MATRIX, AT91_MATRIX_SIZE},
  }

  ...

  void __init
  at91_ioremap_sys_devices(const struct at91_sys_device *devices,
			   int nr_devices)
  {
	int i;

	for (i = 0; i < nr_devices; i++) {
		void __iomem *base = *(dev[i].base);

		base = ioremap(dev[i].mem_start, dev[i].mem_size);
		if (!base)
			panic("Impossible to ioremap AT91 %s\n",
			      dev[i].name);
  }

~Ryan



More information about the linux-arm-kernel mailing list