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

From: Ryan Mallon
Date: Wed Feb 22 2012 - 17:18:04 EST


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

> From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx>
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx>
> Acked-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx>
> Cc: linux-usb@xxxxxxxxxxxxxxx
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>


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

Reviewed-by: Ryan Mallon <rmallon@xxxxxxxxx>

<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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/