Hi Enric,

On Saturday 02 October 2010 11:49:55 Enric Balletbo i Serra wrote:
> The OMAP3 IGEP module is a low-power, high performance production-ready
> system-on-module (SOM) based on TI's OMAP3 family. More about this
> board at www.igep.es.

[snip]

> diff --git a/arch/arm/mach-omap2/board-igep0030.c
> b/arch/arm/mach-omap2/board-igep0030.c new file mode 100644
> index 0000000..7313ef5
> --- /dev/null
> +++ b/arch/arm/mach-omap2/board-igep0030.c

[snip]

> +static int igep3_onenand_setup(void __iomem *onenand_base, int freq)
> +{
> +     /* nothing is required to be setup for onenand as of now */
> +     return 0;
> +}
> +
> +static struct omap_onenand_platform_data igep3_onenand_pdata = {
> +     .parts = igep3_onenand_partitions,
> +     .nr_parts = ARRAY_SIZE(igep3_onenand_partitions),
> +     .onenand_setup = igep3_onenand_setup,
> +     .dma_channel    = -1,   /* disable DMA in OMAP OneNAND driver */
> +};

You can just set onenand_setup to NULL instead of adding a no-op function.

[snip]

> +void __init igep3_flash_init(void)
> +{
> +     u8 cs = 0;
> +     u8 onenandcs = GPMC_CS_NUM + 1;
> +
> +     while (cs < GPMC_CS_NUM) {

What's wrong with "for (cs = 0; cs < GPMC_CS_NUM; cs++)" ? :-)

> +             u32 ret = 0;

No need to initialize ret to 0, you're assigning it right after.

> +             ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
> +
> +             /* Check if NAND/oneNAND is configured */
> +             if ((ret & 0xC00) == 0x800)
> +                     /* NAND found */
> +                     pr_err("IGEP3: Unsupported NAND found\n");
> +             else {
> +                     ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7);
> +                     if ((ret & 0x3F) == (ONENAND_MAP >> 24))
> +                             /* ONENAND found */
> +                             onenandcs = cs;
> +             }
> +             cs++;
> +     }
> +     if (onenandcs > GPMC_CS_NUM) {
> +             pr_err("IGEP3: Unable to find configuration in GPMC\n");
> +             return;
> +     }
> +
> +     if (onenandcs < GPMC_CS_NUM) {

No need to check for onenandcs < GPMC_CS_NUM here, it will always be true.

> +             igep3_onenand_pdata.cs = onenandcs;
> +             if (platform_device_register(&igep3_onenand_device) < 0)
> +                     pr_err("IGEP3: Unable to register OneNAND device\n");
> +     }
> +}

[snip]

> +static void __init igep3_init_irq(void)
> +{
> +     omap_board_config = igep3_config;
> +     omap_board_config_size = ARRAY_SIZE(igep3_config);

No need for this. omap_board_config_size is implicitly initialized to 0 in 
plat-omap/common.c so get_config() won't dereference omap_board_config. You 
can remove the empty igep3_config array.

> +     omap2_init_common_hw(m65kxxxxam_sdrc_params, m65kxxxxam_sdrc_params);
> +     omap_init_irq();
> +     omap_gpio_init();
> +}

[snip]

-- 
Regards,

Laurent Pinchart
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to