}
if (slave->offset == MTDPART_OFS_RETAIN) {
slave->offset = cur_offset;
-@@ -996,6 +994,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -995,6 +993,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -35,6 +35,8 @@
-
+@@ -36,6 +36,8 @@
#include "mtdcore.h"
+ #include "mtdsplit.h"
+#define MTD_ERASE_PARTIAL 0x8000 /* partition only covers parts of an erase block */
+
/* Our partition linked list */
static LIST_HEAD(mtd_partitions);
static DEFINE_MUTEX(mtd_partitions_mutex);
-@@ -231,13 +233,60 @@ static int part_erase(struct mtd_info *m
+@@ -232,13 +234,60 @@ static int part_erase(struct mtd_info *m
struct mtd_part *part = PART(mtd);
int ret;
return ret;
}
-@@ -245,7 +294,25 @@ void mtd_erase_callback(struct erase_inf
+@@ -246,7 +295,25 @@ void mtd_erase_callback(struct erase_inf
{
if (instr->mtd->_erase == part_erase) {
struct mtd_part *part = PART(instr->mtd);
if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN)
instr->fail_addr -= part->offset;
instr->addr -= part->offset;
-@@ -505,18 +572,24 @@ static struct mtd_part *allocate_partiti
+@@ -504,18 +571,24 @@ static struct mtd_part *allocate_partiti
if ((slave->mtd.flags & MTD_WRITEABLE) &&
mtd_mod_by_eb(slave->offset, &slave->mtd)) {
/* Doesn't start on a boundary of major erase size */
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -331,7 +331,14 @@ static int part_lock(struct mtd_info *mt
+@@ -332,7 +332,14 @@ static int part_lock(struct mtd_info *mt
static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
{
struct mtd_part *part = PART(mtd);
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
-@@ -181,6 +181,22 @@ config MTD_BCM47XX_PARTS
+@@ -208,6 +208,22 @@ config MTD_BCM47XX_PARTS
This provides partitions parser for devices based on BCM47xx
boards.
config MTD_BLKDEVS
--- a/drivers/mtd/Makefile
+++ b/drivers/mtd/Makefile
-@@ -13,6 +13,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_AFS_PARTS) += afs.o
obj-$(CONFIG_MTD_AR7_PARTS) += ar7part.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o