On Wed, Sep 28, 2011 at 6:16 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Wednesday 28 September 2011, Peter De Schrijver wrote: >> --- a/arch/arm/mach-tegra/board-dt.c >> +++ b/arch/arm/mach-tegra/board-dt.c >> @@ -47,7 +47,7 @@ >> >> void harmony_pinmux_init(void); >> void seaboard_pinmux_init(void); >> - >> +void ventana_pinmux_init(void); >> >> struct of_dev_auxdata tegra20_auxdata_lookup[] __initdata = { >> OF_DEV_AUXDATA("nvidia,tegra20-sdhci", TEGRA_SDMMC1_BASE, "sdhci-tegra.0", NULL), >> @@ -95,6 +95,8 @@ static void __init tegra_dt_init(void) >> harmony_pinmux_init(); >> else if (of_machine_is_compatible("nvidia,seaboard")) >> seaboard_pinmux_init(); >> + else if (of_machine_is_compatible("nvidia,ventana")) >> + ventana_pinmux_init(); > > Are you (Peter, Colin, Olof) confident that this is not getting out > of hand before it's getting better? > > If we are keeping the per-board pinmux configuration in the kernel > for longer, I think it would be better to do this table-driven than > having a list of top-level of_machine_is_compatible() statements > and do something like: > > static struct { > const char *machine; > struct tegra_pingroup_config *config[]; > } pinmux_configs[] __initdata = { > { "nvidia,ventana", &ventana_pinmux }, > { "nvidia,seaboard, &seaboard_pinmux }, > }; That is definitely a nicer solution. I didn't see a strong need to switch to that model now since it should hopefully be a temporary thing, but given Stephen's mention of Cardhu, I think it does make sense. Peter, care to respin this patch with the above solution instead? Also, please print a warning if no match is found. Thanks, -Olof -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html