X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fmtd%2Fmtdpart.c;h=cddfb1609c3eee1c50257cb00d4f8f7f498deec9;hb=a1b1d7eceb033c256ae661d65732323809fb9101;hp=d20b8578e7644ce1cba2323ae489c6c4db7d3206;hpb=ff94bc40af3481d47546595ba73c136de6af6929;p=u-boot diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c index d20b8578e7..cddfb1609c 100644 --- a/drivers/mtd/mtdpart.c +++ b/drivers/mtd/mtdpart.c @@ -9,7 +9,6 @@ * */ -#define __UBOOT__ #ifndef __UBOOT__ #include #include @@ -178,11 +177,12 @@ static int part_read_user_prot_reg(struct mtd_info *mtd, loff_t from, retlen, buf); } -static int part_get_user_prot_info(struct mtd_info *mtd, - struct otp_info *buf, size_t len) +static int part_get_user_prot_info(struct mtd_info *mtd, size_t len, + size_t *retlen, struct otp_info *buf) { struct mtd_part *part = PART(mtd); - return part->master->_get_user_prot_info(part->master, buf, len); + return part->master->_get_user_prot_info(part->master, len, retlen, + buf); } static int part_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, @@ -193,11 +193,12 @@ static int part_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, retlen, buf); } -static int part_get_fact_prot_info(struct mtd_info *mtd, struct otp_info *buf, - size_t len) +static int part_get_fact_prot_info(struct mtd_info *mtd, size_t len, + size_t *retlen, struct otp_info *buf) { struct mtd_part *part = PART(mtd); - return part->master->_get_fact_prot_info(part->master, buf, len); + return part->master->_get_fact_prot_info(part->master, len, retlen, + buf); } static int part_write(struct mtd_info *mtd, loff_t to, size_t len, @@ -320,6 +321,13 @@ static void part_resume(struct mtd_info *mtd) } #endif +static int part_block_isreserved(struct mtd_info *mtd, loff_t ofs) +{ + struct mtd_part *part = PART(mtd); + ofs += part->offset; + return part->master->_block_isreserved(part->master, ofs); +} + static int part_block_isbad(struct mtd_info *mtd, loff_t ofs) { struct mtd_part *part = PART(mtd); @@ -458,6 +466,8 @@ static struct mtd_part *allocate_partition(struct mtd_info *master, slave->mtd._unlock = part_unlock; if (master->_is_locked) slave->mtd._is_locked = part_is_locked; + if (master->_block_isreserved) + slave->mtd._block_isreserved = part_block_isreserved; if (master->_block_isbad) slave->mtd._block_isbad = part_block_isbad; if (master->_block_markbad) @@ -572,6 +582,7 @@ out_register: return slave; } +#ifndef __UBOOT__ int mtd_add_partition(struct mtd_info *master, const char *name, long long offset, long long length) { @@ -651,6 +662,7 @@ int mtd_del_partition(struct mtd_info *master, int partno) return ret; } EXPORT_SYMBOL_GPL(mtd_del_partition); +#endif /* * This function, given a master MTD object and a partition table, creates