[RFC PATCH 9/9] nand/denali: support MTD partitioning
Jamie Iles
jamie at jamieiles.com
Fri May 6 10:29:03 EDT 2011
If CONFIG_MTD_PARTITION is enabled then take the partitions from the
platform data.
Cc: David Woodhouse <dwmw2 at infradead.org>
Cc: Chuanxiao Dong <chuanxiao.dong at intel.com>
Signed-off-by: Jamie Iles <jamie at jamieiles.com>
---
drivers/mtd/nand/denali.c | 8 ++++++++
include/linux/platform_data/denali.h | 6 +++++-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
index c79009f..ae954de 100644
--- a/drivers/mtd/nand/denali.c
+++ b/drivers/mtd/nand/denali.c
@@ -23,6 +23,7 @@
#include <linux/mutex.h>
#include <linux/slab.h>
#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
#include <linux/module.h>
#include <linux/platform_data/denali.h>
@@ -1563,7 +1564,14 @@ int denali_init(struct denali_nand_info *denali)
goto failed_req_irq;
}
+#ifdef CONFIG_MTD_PARTITIONS
+ if (pdata && pdata->parts) {
+ ret = add_mtd_partitions(&denali->mtd, pdata->parts,
+ pdata->nr_parts);
+ } else
+#endif /* CONFIG_MTD_PARTITIONS */
ret = add_mtd_device(&denali->mtd);
+
if (ret) {
dev_err(denali->dev, "failed to register MTD: %d\n", ret);
goto failed_req_irq;
diff --git a/include/linux/platform_data/denali.h b/include/linux/platform_data/denali.h
index cfdb775..e9e415b 100644
--- a/include/linux/platform_data/denali.h
+++ b/include/linux/platform_data/denali.h
@@ -14,8 +14,12 @@
#ifndef __DENALI_PDATA_H__
#define __DENALI_PDATA_H__
+struct mtd_partition;
+
struct denali_nand_pdata {
- int nr_ecc_bits;
+ int nr_ecc_bits;
+ const struct mtd_partition *parts;
+ unsigned int nr_parts;
};
#endif /* __DENALI_PDATA_H__ */
--
1.7.4.4
More information about the linux-mtd
mailing list