On Wed, Apr 28, 2010 at 9:36 PM, Mike Rapoport <m...@compulab.co.il> wrote:
> Signed-off-by: Mike Rapoport <m...@compulab.co.il>
> ---
>  arch/arm/mach-omap2/gpmc-nand.c        |   19 ++++++++++++++++++-
>  arch/arm/plat-omap/include/plat/nand.h |    1 +
>  2 files changed, 19 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
> index e57fb29..7c6c027 100644
> --- a/arch/arm/mach-omap2/gpmc-nand.c
> +++ b/arch/arm/mach-omap2/gpmc-nand.c
> @@ -22,6 +22,7 @@
>  #define WR_RD_PIN_MONITORING   0x00600000
>
>  static struct omap_nand_platform_data *gpmc_nand_data;
> +static struct gpmc_timings gpmc_default_timings;
>
>  static struct resource gpmc_nand_resource = {
>        .flags          = IORESOURCE_MEM,
> @@ -34,13 +35,24 @@ static struct platform_device gpmc_nand_device = {
>        .resource       = &gpmc_nand_resource,
>  };
>
> +static void gpmc_nand_detect_timings(void)
> +{
> +       struct gpmc_timings t;
> +
> +       memset(&t, 0, sizeof(t));
> +       gpmc_cs_get_timings(gpmc_nand_data->cs, &gpmc_default_timings);
> +}
> +
>  static int omap2_nand_gpmc_retime(void)
>  {
> +       struct device *dev = &gpmc_nand_device.dev;
>        struct gpmc_timings t;
>        int err;
>
> -       if (!gpmc_nand_data->gpmc_t)
> +       if (!gpmc_nand_data->gpmc_t) {
> +               dev_warn(dev, "No timings provided, skipping retime\n");
>                return 0;
> +       }
>
>        memset(&t, 0, sizeof(t));
>        t.sync_clk = gpmc_round_ns_to_ticks(gpmc_nand_data->gpmc_t->sync_clk);
> @@ -112,6 +124,11 @@ int __init gpmc_nand_init(struct omap_nand_platform_data 
> *_nand_data)
>                return err;
>        }
>
> +       if (gpmc_nand_data->keep_timings) {
> +               gpmc_nand_detect_timings();
> +               gpmc_nand_data->gpmc_t = &gpmc_default_timings;
> +       }
> +

I guess moving this part to omap2_nand_gpmc_retime will be a good idea.
As there, once we get old/default timings we can simply skip the
rounding part and directly jump to setting the timings.

Rest looks fine to me.

-- 
Regards,
Vimal Singh
--
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