mediatek: patch block2mtd to allow cmdlineparts to work
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 49067
This commit is contained in:
parent
30d3a8c512
commit
dd70bcc089
2 changed files with 34 additions and 1 deletions
|
@ -56,7 +56,7 @@ CONFIG_CLKSRC_MMIO=y
|
||||||
CONFIG_CLKSRC_OF=y
|
CONFIG_CLKSRC_OF=y
|
||||||
CONFIG_CLKSRC_PROBE=y
|
CONFIG_CLKSRC_PROBE=y
|
||||||
CONFIG_CLONE_BACKWARDS=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_CMDLINE_FORCE=y
|
||||||
CONFIG_COMMON_CLK=y
|
CONFIG_COMMON_CLK=y
|
||||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||||
|
@ -279,6 +279,7 @@ CONFIG_MMC_SDHCI_PLTFM=y
|
||||||
# CONFIG_MMC_TIFM_SD is not set
|
# CONFIG_MMC_TIFM_SD is not set
|
||||||
CONFIG_MODULES_USE_ELF_REL=y
|
CONFIG_MODULES_USE_ELF_REL=y
|
||||||
CONFIG_MTD_BLOCK2MTD=y
|
CONFIG_MTD_BLOCK2MTD=y
|
||||||
|
CONFIG_MTD_CMDLINE_PARTS=y
|
||||||
CONFIG_MTD_M25P80=y
|
CONFIG_MTD_M25P80=y
|
||||||
CONFIG_MTD_SPI_NOR=y
|
CONFIG_MTD_SPI_NOR=y
|
||||||
CONFIG_MTK_INFRACFG=y
|
CONFIG_MTK_INFRACFG=y
|
||||||
|
|
32
target/linux/mediatek/patches-4.4/0100-block2mtd.patch
Normal file
32
target/linux/mediatek/patches-4.4/0100-block2mtd.patch
Normal file
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in a new issue