On Tue, May 19, 2009 at 04:41:23PM -0700, Tony Lindgren wrote:
> +#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
> +     defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
...
> +static void __init board_onenand_init(void)
> +{
> +     gpmc_onenand_init(&board_onenand_data);
> +}
> +
> +#endif
>  
>  void __init rx51_peripherals_init(void)
>  {
> @@ -415,5 +466,6 @@ void __init rx51_peripherals_init(void)
>                               ARRAY_SIZE(rx51_peripherals_devices));
>       rx51_i2c_init();
>       rx51_init_smc91x();
> +     board_onenand_init();

This breaks without onenand support.

> diff --git a/arch/arm/mach-omap2/gpmc-onenand.c 
> b/arch/arm/mach-omap2/gpmc-onenand.c
> new file mode 100644
> index 0000000..712af59
> --- /dev/null
> +++ b/arch/arm/mach-omap2/gpmc-onenand.c
> @@ -0,0 +1,340 @@
> +/*
> + * linux/arch/arm/mach-omap2/gpmc-onenand.c
> + *
> + * Copyright (C) 2006 - 2009 Nokia Corporation
> + * Contacts: Juha Yrjola
> + *           Tony Lindgren
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/platform_device.h>
> +#include <asm/mach/flash.h>
> +#include <linux/mtd/onenand_regs.h>
> +
> +#include <linux/io.h>

linux/ includes together please (without asm/ includes mixed in).

> +static unsigned short omap2_onenand_readw(void __iomem *addr)
> +{
> +     return readw(addr);
> +}
> +
> +static void omap2_onenand_writew(unsigned short value, void __iomem *addr)
> +{
> +     writew(value, addr);
> +}

These two are pointless.  Just use readw/writew directly.

> diff --git a/arch/arm/plat-omap/include/mach/onenand.h 
> b/arch/arm/plat-omap/include/mach/onenand.h
> index 4649d30..94cde73 100644
> --- a/arch/arm/plat-omap/include/mach/onenand.h
> +++ b/arch/arm/plat-omap/include/mach/onenand.h
> @@ -9,8 +9,14 @@
>   * published by the Free Software Foundation.
>   */
>  
> +#include <linux/mtd/mtd.h>
>  #include <linux/mtd/partitions.h>
>  
> +#ifndef __ASM_ARCH_OMAP_ONENAND_H__

This provides no protection against multiple includes on its own.  You're
missing a #define of this symbol.

> +
> +#define ONENAND_SYNC_READ    (1 << 0)
> +#define ONENAND_SYNC_READWRITE       (1 << 1)
> +
>  struct omap_onenand_platform_data {
>       int                     cs;
>       int                     gpio_irq;
> @@ -18,8 +24,27 @@ struct omap_onenand_platform_data {
>       int                     nr_parts;
>       int                     (*onenand_setup)(void __iomem *, int freq);
>       int                     dma_channel;
> +     u8                      flags;
>  };
>  
> -int omap2_onenand_rephase(void);
> -
>  #define ONENAND_MAX_PARTITIONS 8
> +
> +#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
> +     defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
> +
> +extern void gpmc_onenand_init(struct omap_onenand_platform_data *d);
> +
> +#else
> +
> +#define board_onenand_data   NULL
> +
> +static inline void board_onenand_init(void)
> +{
> +}

Eww, you put it in a different file.  Disgusting.  Please put it in the
_same_ file as the place it's used.

> +
> +static inline void gpmc_onenand_init(struct omap_onenand_platform_data *d)
> +{
> +}
> +
> +#endif
> +#endif
> 
> 
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
> FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to