Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b56d2d4 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Brian Norris
Browse files

mtd: bcm47xxpart: support SquashFS with an original magic



SquashFS is supposed to use magic defined as SQUASHFS_MAGIC. What we
were supporting so far (SQSH_MAGIC) is something ZTE specific.
This patch adds support for Xiaomi R1D.

Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 16bd87b3
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -15,6 +15,8 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/mtd/partitions.h>


#include <uapi/linux/magic.h>

/*
/*
 * NAND flash on Netgear R6250 was verified to contain 15 partitions.
 * NAND flash on Netgear R6250 was verified to contain 15 partitions.
 * This will result in allocating too big array for some old devices, but the
 * This will result in allocating too big array for some old devices, but the
@@ -39,7 +41,7 @@
#define ML_MAGIC1			0x39685a42
#define ML_MAGIC1			0x39685a42
#define ML_MAGIC2			0x26594131
#define ML_MAGIC2			0x26594131
#define TRX_MAGIC			0x30524448
#define TRX_MAGIC			0x30524448
#define SQSH_MAGIC			0x71736873	/* shsq */
#define SHSQ_MAGIC			0x71736873	/* shsq (weird ZTE H218N endianness) */
#define UBI_EC_MAGIC			0x23494255	/* UBI# */
#define UBI_EC_MAGIC			0x23494255	/* UBI# */


struct trx_header {
struct trx_header {
@@ -233,7 +235,8 @@ static int bcm47xxpart_parse(struct mtd_info *master,
		}
		}


		/* Squashfs on devices not using TRX */
		/* Squashfs on devices not using TRX */
		if (buf[0x000 / 4] == SQSH_MAGIC) {
		if (le32_to_cpu(buf[0x000 / 4]) == SQUASHFS_MAGIC ||
		    buf[0x000 / 4] == SHSQ_MAGIC) {
			bcm47xxpart_add_part(&parts[curr_part++], "rootfs",
			bcm47xxpart_add_part(&parts[curr_part++], "rootfs",
					     offset, 0);
					     offset, 0);
			continue;
			continue;