aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch')
-rw-r--r--target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch b/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch
new file mode 100644
index 0000000000..c3012fb933
--- /dev/null
+++ b/target/linux/ramips/patches-3.18/0101-mtd-add-rtn56u-support.patch
@@ -0,0 +1,27 @@
+--- a/drivers/mtd/mtdpart.c
++++ b/drivers/mtd/mtdpart.c
+@@ -809,8 +809,11 @@ static void split_uimage(struct mtd_info
+ {
+ struct {
+ __be32 magic;
+- __be32 pad[2];
++ __be32 pad0[2];
+ __be32 size;
++ __be32 pad1[4];
++ __be32 name[7];
++ __be32 kern_size;
+ } hdr;
+ size_t len;
+
+@@ -820,7 +823,10 @@ static void split_uimage(struct mtd_info
+ if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC))
+ return;
+
+- len = be32_to_cpu(hdr.size) + 0x40;
++ if (hdr.kern_size != 0 && hdr.name[0] == 0)
++ len = be32_to_cpu(hdr.kern_size);
++ else
++ len = be32_to_cpu(hdr.size) + 0x40;
+
+ if (config_enabled(CONFIG_MTD_SPLIT_UIMAGE_FW))
+ pr_err("Dedicated partitioner didn't split firmware partition, please fill a bug report!\n");