61 lines
1.9 KiB
Diff
61 lines
1.9 KiB
Diff
From 219a4d34b71c37a2a23739718924b0915790f44f Mon Sep 17 00:00:00 2001
|
|
From: mokopatches <mokopatches@openmoko.org>
|
|
Date: Fri, 4 Apr 2008 11:29:16 +0100
|
|
Subject: [PATCH] gta01-no_nand_partitions.patch
|
|
[PATCH] support mtd NAND commandline partitions for S3C2410
|
|
|
|
This patch adds support for the mtd NAND core standard method of passing
|
|
partition table information from the bootloader into the kernel by using
|
|
the kernel commandline.
|
|
|
|
The board specific code can still manually override and provide a fixed
|
|
partition table, so this patch will behave backwards compatible.
|
|
|
|
Signed-off-by: Harald Welte <laforge@openmoko.org>
|
|
Acked-byt: Ben Dooks <ben-linux@fluff.org>
|
|
---
|
|
drivers/mtd/nand/s3c2410.c | 18 ++++++++++++++++--
|
|
1 files changed, 16 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
|
|
index 66f76e9..355de78 100644
|
|
--- a/drivers/mtd/nand/s3c2410.c
|
|
+++ b/drivers/mtd/nand/s3c2410.c
|
|
@@ -559,17 +559,31 @@ static int s3c2410_nand_remove(struct platform_device *pdev)
|
|
}
|
|
|
|
#ifdef CONFIG_MTD_PARTITIONS
|
|
+const char *part_probes[] = { "cmdlinepart", NULL };
|
|
static int s3c2410_nand_add_partition(struct s3c2410_nand_info *info,
|
|
struct s3c2410_nand_mtd *mtd,
|
|
struct s3c2410_nand_set *set)
|
|
{
|
|
+ struct mtd_partition *part_info;
|
|
+ int nr_part = 0;
|
|
+
|
|
if (set == NULL)
|
|
return add_mtd_device(&mtd->mtd);
|
|
|
|
- if (set->nr_partitions > 0 && set->partitions != NULL) {
|
|
- return add_mtd_partitions(&mtd->mtd, set->partitions, set->nr_partitions);
|
|
+ if (set->nr_partitions == 0) {
|
|
+ mtd->mtd.name = set->name;
|
|
+ nr_part = parse_mtd_partitions(&mtd->mtd, part_probes,
|
|
+ &part_info, 0);
|
|
+ } else {
|
|
+ if (set->nr_partitions > 0 && set->partitions != NULL) {
|
|
+ nr_part = set->nr_partitions;
|
|
+ part_info = set->partitions;
|
|
+ }
|
|
}
|
|
|
|
+ if (nr_part > 0 && part_info)
|
|
+ return add_mtd_partitions(&mtd->mtd, part_info, nr_part);
|
|
+
|
|
return add_mtd_device(&mtd->mtd);
|
|
}
|
|
#else
|
|
--
|
|
1.5.6.5
|
|
|