|
|
@@ -1,15 +1,15 @@
|
|
|
--- 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;
|
|
|
|
|
|
@@ -70,7 +70,7 @@
|
|
|
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);
|
|
|
@@ -96,7 +96,7 @@
|
|
|
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 */
|