Loading drivers/mtd/bcm47xxpart.c +26 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #define ML_MAGIC2 0x26594131 #define TRX_MAGIC 0x30524448 #define SQSH_MAGIC 0x71736873 /* shsq */ #define UBI_EC_MAGIC 0x23494255 /* UBI# */ struct trx_header { uint32_t magic; Loading @@ -50,7 +51,7 @@ struct trx_header { uint32_t offset[3]; } __packed; static void bcm47xxpart_add_part(struct mtd_partition *part, char *name, static void bcm47xxpart_add_part(struct mtd_partition *part, const char *name, u64 offset, uint32_t mask_flags) { part->name = name; Loading @@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct mtd_partition *part, char *name, part->mask_flags = mask_flags; } static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master, size_t offset) { uint32_t buf; size_t bytes_read; if (mtd_read(master, offset, sizeof(buf), &bytes_read, (uint8_t *)&buf) < 0) { pr_err("mtd_read error while parsing (offset: 0x%X)!\n", offset); goto out_default; } if (buf == UBI_EC_MAGIC) return "ubi"; out_default: return "rootfs"; } static int bcm47xxpart_parse(struct mtd_info *master, struct mtd_partition **pparts, struct mtd_part_parser_data *data) Loading Loading @@ -186,8 +207,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, * we want to have jffs2 (overlay) in the same mtd. */ if (trx->offset[i]) { const char *name; name = bcm47xxpart_trx_data_part_name(master, offset + trx->offset[i]); bcm47xxpart_add_part(&parts[curr_part++], "rootfs", name, offset + trx->offset[i], 0); i++; Loading Loading
drivers/mtd/bcm47xxpart.c +26 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #define ML_MAGIC2 0x26594131 #define TRX_MAGIC 0x30524448 #define SQSH_MAGIC 0x71736873 /* shsq */ #define UBI_EC_MAGIC 0x23494255 /* UBI# */ struct trx_header { uint32_t magic; Loading @@ -50,7 +51,7 @@ struct trx_header { uint32_t offset[3]; } __packed; static void bcm47xxpart_add_part(struct mtd_partition *part, char *name, static void bcm47xxpart_add_part(struct mtd_partition *part, const char *name, u64 offset, uint32_t mask_flags) { part->name = name; Loading @@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct mtd_partition *part, char *name, part->mask_flags = mask_flags; } static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master, size_t offset) { uint32_t buf; size_t bytes_read; if (mtd_read(master, offset, sizeof(buf), &bytes_read, (uint8_t *)&buf) < 0) { pr_err("mtd_read error while parsing (offset: 0x%X)!\n", offset); goto out_default; } if (buf == UBI_EC_MAGIC) return "ubi"; out_default: return "rootfs"; } static int bcm47xxpart_parse(struct mtd_info *master, struct mtd_partition **pparts, struct mtd_part_parser_data *data) Loading Loading @@ -186,8 +207,11 @@ static int bcm47xxpart_parse(struct mtd_info *master, * we want to have jffs2 (overlay) in the same mtd. */ if (trx->offset[i]) { const char *name; name = bcm47xxpart_trx_data_part_name(master, offset + trx->offset[i]); bcm47xxpart_add_part(&parts[curr_part++], "rootfs", name, offset + trx->offset[i], 0); i++; Loading