X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Fbrcm63xx%2Fpatches-4.4%2F311-bcm63xxpart_use_cfedetection.patch;fp=target%2Flinux%2Fbrcm63xx%2Fpatches-4.4%2F311-bcm63xxpart_use_cfedetection.patch;h=46d9b47cdf3abeef5225d3a92f6ac6a35d75847c;hp=0000000000000000000000000000000000000000;hb=1607b6ca708e71f1f092bc191c03a9d258a15562;hpb=a45fb9ceb31d65b9ccb33fe5cd786eb99dcbbec5 diff --git a/target/linux/brcm63xx/patches-4.4/311-bcm63xxpart_use_cfedetection.patch b/target/linux/brcm63xx/patches-4.4/311-bcm63xxpart_use_cfedetection.patch new file mode 100644 index 0000000000..46d9b47cdf --- /dev/null +++ b/target/linux/brcm63xx/patches-4.4/311-bcm63xxpart_use_cfedetection.patch @@ -0,0 +1,51 @@ +--- a/drivers/mtd/bcm63xxpart.c ++++ b/drivers/mtd/bcm63xxpart.c +@@ -35,7 +35,7 @@ + + #include + #include +-#include ++#include + + #define BCM63XX_EXTENDED_SIZE 0xBFC00000 /* Extended flash address */ + +@@ -43,30 +43,6 @@ + + #define BCM63XX_CFE_MAGIC_OFFSET 0x4e0 + +-static int bcm63xx_detect_cfe(struct mtd_info *master) +-{ +- char buf[9]; +- int ret; +- size_t retlen; +- +- ret = mtd_read(master, BCM963XX_CFE_VERSION_OFFSET, 5, &retlen, +- (void *)buf); +- buf[retlen] = 0; +- +- if (ret) +- return ret; +- +- if (strncmp("cfe-v", buf, 5) == 0) +- return 0; +- +- /* very old CFE's do not have the cfe-v string, so check for magic */ +- ret = mtd_read(master, BCM63XX_CFE_MAGIC_OFFSET, 8, &retlen, +- (void *)buf); +- buf[retlen] = 0; +- +- return strncmp("CFE1CFE1", buf, 8); +-} +- + static int bcm63xx_parse_cfe_partitions(struct mtd_info *master, + struct mtd_partition **pparts, + struct mtd_part_parser_data *data) +@@ -85,7 +61,7 @@ static int bcm63xx_parse_cfe_partitions( + u32 computed_crc; + bool rootfs_first = false; + +- if (bcm63xx_detect_cfe(master)) ++ if (!bcm63xx_is_cfe_present()) + return -EINVAL; + + cfe_erasesize = max_t(uint32_t, master->erasesize,