diff options
author | John Crispin <john@openwrt.org> | 2016-03-23 11:12:34 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2016-03-23 11:12:34 +0000 |
commit | dd70bcc0895463dadf1976b925bb5e705a1ed2cb (patch) | |
tree | fd5b6a818313f2f71fd320ba704d948d2ae11e42 | |
parent | 30d3a8c512c259614dd3da9cd1ef8d125c981555 (diff) | |
download | upstream-dd70bcc0895463dadf1976b925bb5e705a1ed2cb.tar.gz upstream-dd70bcc0895463dadf1976b925bb5e705a1ed2cb.tar.bz2 upstream-dd70bcc0895463dadf1976b925bb5e705a1ed2cb.zip |
mediatek: patch block2mtd to allow cmdlineparts to work
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 49067
-rw-r--r-- | target/linux/mediatek/config-4.4 | 3 | ||||
-rw-r--r-- | target/linux/mediatek/patches-4.4/0100-block2mtd.patch | 32 |
2 files changed, 34 insertions, 1 deletions
diff --git a/target/linux/mediatek/config-4.4 b/target/linux/mediatek/config-4.4 index 259e65cb36..f9d5d06765 100644 --- a/target/linux/mediatek/config-4.4 +++ b/target/linux/mediatek/config-4.4 @@ -56,7 +56,7 @@ CONFIG_CLKSRC_MMIO=y CONFIG_CLKSRC_OF=y CONFIG_CLKSRC_PROBE=y CONFIG_CLONE_BACKWARDS=y -CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 block2mtd=/dev/mmcblk0,65536,eMMC,5 mtdparts=eMMC:256k(mbr),512k(uboot),256k(config),256k(factory),32M(bootimg),32M(recovery),1024M(rootfs),2048M(usrdata),-(bmtpool)" +CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 block2mtd.block2mtd=/dev/mmcblk0,65536,eMMC,5 mtdparts=eMMC:256k(mbr)ro,512k(uboot)ro,256k(config)ro,256k(factory)ro,32M(bootimg),32M(recovery),1024M(rootfs),2048M(usrdata),-(bmtpool)" CONFIG_CMDLINE_FORCE=y CONFIG_COMMON_CLK=y CONFIG_COMMON_CLK_MEDIATEK=y @@ -279,6 +279,7 @@ CONFIG_MMC_SDHCI_PLTFM=y # CONFIG_MMC_TIFM_SD is not set CONFIG_MODULES_USE_ELF_REL=y CONFIG_MTD_BLOCK2MTD=y +CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_M25P80=y CONFIG_MTD_SPI_NOR=y CONFIG_MTK_INFRACFG=y diff --git a/target/linux/mediatek/patches-4.4/0100-block2mtd.patch b/target/linux/mediatek/patches-4.4/0100-block2mtd.patch new file mode 100644 index 0000000000..7fbd6d4019 --- /dev/null +++ b/target/linux/mediatek/patches-4.4/0100-block2mtd.patch @@ -0,0 +1,32 @@ +--- a/drivers/mtd/devices/block2mtd.c ++++ b/drivers/mtd/devices/block2mtd.c +@@ -32,6 +32,8 @@ + #include <linux/slab.h> + #include <linux/major.h> + ++static const char * const block2mtd_probe_types[] = { "cmdlinepart", NULL }; ++ + /* Info for the block device */ + struct block2mtd_dev { + struct list_head list; +@@ -227,6 +229,7 @@ + #endif + const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; + struct block_device *bdev = ERR_PTR(-ENODEV); ++ struct mtd_part_parser_data ppdata = { 0 }; + struct block2mtd_dev *dev; + struct mtd_partition *part; + char *name; +@@ -307,11 +310,7 @@ + dev->mtd.priv = dev; + dev->mtd.owner = THIS_MODULE; + +- part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL); +- part->name = name; +- part->offset = 0; +- part->size = dev->mtd.size; +- if (mtd_device_register(&dev->mtd, part, 1)) { ++ if (mtd_device_parse_register(&dev->mtd, block2mtd_probe_types, &ppdata, NULL, 0)) { + /* Device didn't get added, so free the entry */ + goto err_destroy_mutex; + } |