mtd: atmel_nand: avoid to report an error when lookup table offset is 0.
authorJosh Wu <josh.wu@atmel.com>
Wed, 23 Jan 2013 12:47:08 +0000 (20:47 +0800)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Tue, 12 Feb 2013 15:00:48 +0000 (17:00 +0200)
Before this patch, we assume the whole ROM code are mapping to memory. So
it is wrong if the lookup table offset is 0.

After this patch, we can map only the lookup table of ROM code to memory
intead of the whole ROM code (about 1M). In this case, one lookup table
offset can be 0.

Signed-off-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
drivers/mtd/nand/atmel_nand.c

index c516a9408087921a9d8c40b243e2f9005964b2e6..1d989dba4ce52d28a336166305efef5711485466 100644 (file)
@@ -1215,7 +1215,7 @@ static void atmel_nand_hwctl(struct mtd_info *mtd, int mode)
 static int atmel_of_init_port(struct atmel_nand_host *host,
                              struct device_node *np)
 {
-       u32 val, table_offset;
+       u32 val;
        u32 offset[2];
        int ecc_mode;
        struct atmel_nand_data *board = &host->board;
@@ -1288,13 +1288,12 @@ static int atmel_of_init_port(struct atmel_nand_host *host,
                dev_err(host->dev, "Cannot get PMECC lookup table offset\n");
                return -EINVAL;
        }
-       table_offset = host->pmecc_sector_size == 512 ? offset[0] : offset[1];
-
-       if (!table_offset) {
+       if (!offset[0] && !offset[1]) {
                dev_err(host->dev, "Invalid PMECC lookup table offset\n");
                return -EINVAL;
        }
-       host->pmecc_lookup_table_offset = table_offset;
+       host->pmecc_lookup_table_offset =
+               (host->pmecc_sector_size == 512) ? offset[0] : offset[1];
 
        return 0;
 }
This page took 0.027141 seconds and 5 git commands to generate.