[adm5120] make use the chip_fixup function of the plat_nand driver
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 6 Jun 2008 09:03:35 +0000 (09:03 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 6 Jun 2008 09:03:35 +0000 (09:03 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11376 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/adm5120/files/arch/mips/adm5120/boards/mikrotik.c

index 48ea92f..48a7272 100644 (file)
@@ -213,6 +213,16 @@ static void __init rb1xx_mac_setup(void)
        }
 }
 
        }
 }
 
+static int rb1xx_nand_fixup(struct mtd_info *mtd)
+{
+       struct nand_chip *chip = mtd->priv;
+
+       if (mtd->writesize == 512)
+               chip->ecc.layout = &rb1xx_nand_ecclayout;
+
+       return 0;
+}
+
 static void __init rb1xx_flash_setup(void)
 {
        /* setup data for flash0 device */
 static void __init rb1xx_flash_setup(void)
 {
        /* setup data for flash0 device */
@@ -223,9 +233,10 @@ static void __init rb1xx_flash_setup(void)
        adm5120_nand_data.chip.nr_chips = 1;
        adm5120_nand_data.chip.nr_partitions = ARRAY_SIZE(rb1xx_nand_parts);
        adm5120_nand_data.chip.partitions = rb1xx_nand_parts;
        adm5120_nand_data.chip.nr_chips = 1;
        adm5120_nand_data.chip.nr_partitions = ARRAY_SIZE(rb1xx_nand_parts);
        adm5120_nand_data.chip.partitions = rb1xx_nand_parts;
-       adm5120_nand_data.chip.ecclayout = &rb1xx_nand_ecclayout;
        adm5120_nand_data.chip.chip_delay = RB1XX_NAND_CHIP_DELAY;
        adm5120_nand_data.chip.options = NAND_NO_AUTOINCR;
        adm5120_nand_data.chip.chip_delay = RB1XX_NAND_CHIP_DELAY;
        adm5120_nand_data.chip.options = NAND_NO_AUTOINCR;
+
+       adm5120_nand_data.chip.chip_fixup = &rb1xx_nand_fixup;
 }
 
 static void __init rb1xx_setup(void)
 }
 
 static void __init rb1xx_setup(void)
This page took 0.02082 seconds and 4 git commands to generate.