summaryrefslogtreecommitdiffstats
path: root/linux-2.4.x/drivers/mtd/mtdpart.c
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2011-02-26 12:16:43 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2011-02-26 12:16:43 (GMT)
commitedb45850f53478c7779484105c30f8df0a3a3782 (patch)
tree26e758b463e03475be4d214aeb17c6517b01a83e /linux-2.4.x/drivers/mtd/mtdpart.c
parentba6dc76a789f33fc999bbd24fe8af5b856f90085 (diff)
downloadopenipcam-edb45850f53478c7779484105c30f8df0a3a3782.zip
openipcam-edb45850f53478c7779484105c30f8df0a3a3782.tar.gz
openipcam-edb45850f53478c7779484105c30f8df0a3a3782.tar.bz2
2.4.20-uc0 uClinux patch added
Diffstat (limited to 'linux-2.4.x/drivers/mtd/mtdpart.c')
-rw-r--r--linux-2.4.x/drivers/mtd/mtdpart.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/linux-2.4.x/drivers/mtd/mtdpart.c b/linux-2.4.x/drivers/mtd/mtdpart.c
index 58142a9..2453697 100644
--- a/linux-2.4.x/drivers/mtd/mtdpart.c
+++ b/linux-2.4.x/drivers/mtd/mtdpart.c
@@ -85,6 +85,18 @@ static int part_write (struct mtd_info *mtd, loff_t to, size_t len,
len, retlen, buf);
}
+static int part_point (struct mtd_info *mtd, loff_t off, size_t len,
+ size_t *retlen, u_char **buf)
+{
+ struct mtd_part *part = PART(mtd);
+ if (off >= mtd->size)
+ len = 0;
+ else if (off + len > mtd->size)
+ len = mtd->size - off;
+ return part->master->point (part->master, off + part->offset, len,
+ retlen, buf);
+}
+
static int part_write_oob (struct mtd_info *mtd, loff_t to, size_t len,
size_t *retlen, const u_char *buf)
{
@@ -245,6 +257,10 @@ int add_mtd_partitions(struct mtd_info *master,
slave->mtd.suspend = part_suspend;
slave->mtd.resume = part_resume;
}
+
+ if (master->point)
+ slave->mtd.point = part_point;
+
if (master->writev)
slave->mtd.writev = part_writev;
if (master->readv)