ts72xx: use MTDPART_OFS_RETAIN for mtd partitioning
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Mon, 6 Jun 2011 14:04:15 +0000 (18:04 +0400)
committerArtem Bityutskiy <artem.bityutskiy@intel.com>
Sun, 11 Sep 2011 12:02:04 +0000 (15:02 +0300)
Instead of specifying a callback for dynamic partitioning, use
MTDPART_OFS_RETAIN for reserving a place near the end of flash for
RedBoot.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ryan Mallon <ryan@bluewatersys.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
arch/arm/mach-ep93xx/ts72xx.c

index c2d2cf40ead920f323a717185b9fc715d704d96d..dea42e262151a1502cc39e19c5b9c41c78fd4de1 100644 (file)
@@ -116,8 +116,9 @@ static struct mtd_partition ts72xx_nand_parts[] = {
                .mask_flags     = MTD_WRITEABLE,        /* force read-only */
        }, {
                .name           = "Linux",
-               .offset         = MTDPART_OFS_APPEND,
-               .size           = 0,                    /* filled in later */
+               .offset         = MTDPART_OFS_RETAIN,
+               .size           = TS72XX_REDBOOT_PART_SIZE,
+                               /* leave so much for last partition */
        }, {
                .name           = "RedBoot",
                .offset         = MTDPART_OFS_APPEND,
@@ -126,28 +127,14 @@ static struct mtd_partition ts72xx_nand_parts[] = {
        },
 };
 
-static void ts72xx_nand_set_parts(uint64_t size,
-                                 struct platform_nand_chip *chip)
-{
-       /* Factory TS-72xx boards only come with 32MiB or 128MiB NAND options */
-       if (size == SZ_32M || size == SZ_128M) {
-               /* Set the "Linux" partition size */
-               ts72xx_nand_parts[1].size = size - TS72XX_REDBOOT_PART_SIZE;
-
-               chip->partitions = ts72xx_nand_parts;
-               chip->nr_partitions = ARRAY_SIZE(ts72xx_nand_parts);
-       } else {
-               pr_warning("Unknown nand disk size:%lluMiB\n", size >> 20);
-       }
-}
-
 static struct platform_nand_data ts72xx_nand_data = {
        .chip = {
                .nr_chips       = 1,
                .chip_offset    = 0,
                .chip_delay     = 15,
                .part_probe_types = ts72xx_nand_part_probes,
-               .set_parts      = ts72xx_nand_set_parts,
+               .partitions     = ts72xx_nand_parts,
+               .nr_partitions  = ARRAY_SIZE(ts72xx_nand_parts),
        },
        .ctrl = {
                .cmd_ctrl       = ts72xx_nand_hwcontrol,