Author: blogic
Date: 2016-03-23 12:12:34 +0100 (Wed, 23 Mar 2016)
New Revision: 49067

Added:
   trunk/target/linux/mediatek/patches-4.4/0100-block2mtd.patch
Modified:
   trunk/target/linux/mediatek/config-4.4
Log:
mediatek: patch block2mtd to allow cmdlineparts to work

Signed-off-by: John Crispin <[email protected]>

Modified: trunk/target/linux/mediatek/config-4.4
===================================================================
--- trunk/target/linux/mediatek/config-4.4      2016-03-22 21:14:51 UTC (rev 
49066)
+++ trunk/target/linux/mediatek/config-4.4      2016-03-23 11:12:34 UTC (rev 
49067)
@@ -56,7 +56,7 @@
 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_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

Added: trunk/target/linux/mediatek/patches-4.4/0100-block2mtd.patch
===================================================================
--- trunk/target/linux/mediatek/patches-4.4/0100-block2mtd.patch                
                (rev 0)
+++ trunk/target/linux/mediatek/patches-4.4/0100-block2mtd.patch        
2016-03-23 11:12:34 UTC (rev 49067)
@@ -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;
+       }
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to