c931b21161
SVN-Revision: 13619
61 lines
1.9 KiB
Diff
Executable File
61 lines
1.9 KiB
Diff
Executable File
From 1ef4af1f96284576aa9b7f4490c791350c99fffd Mon Sep 17 00:00:00 2001
|
|
From: mokopatches <mokopatches@openmoko.org>
|
|
Date: Wed, 16 Jul 2008 14:44:10 +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 b34a460..101b6b5 100644
|
|
--- a/drivers/mtd/nand/s3c2410.c
|
|
+++ b/drivers/mtd/nand/s3c2410.c
|
|
@@ -566,17 +566,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.3
|
|
|