mirror of https://github.com/hak5/openwrt.git
kernel: update kernel 4.4 to version 4.4.30
This patch bumps the 4.4 kernel from .28 to .30 and refreshes the patches. Compile-tested on ar71xx, x86/64, ramips/mt7621, brcm47xx and kirkwood. Run-tested on ar71xx & ramips/mt7621, brcm47xx and kirkwood (last two confirmed by P. Wassi). Signed-off-by: Stijn Segers <francesco.borromini@inventati.org>lede-17.01
parent
eefe07ef4d
commit
2f2ea7b44c
|
@ -4,11 +4,11 @@ LINUX_RELEASE?=1
|
|||
|
||||
LINUX_VERSION-3.18 = .43
|
||||
LINUX_VERSION-4.1 = .34
|
||||
LINUX_VERSION-4.4 = .28
|
||||
LINUX_VERSION-4.4 = .30
|
||||
|
||||
LINUX_KERNEL_MD5SUM-3.18.43 = b1faeb4a2e1e70ffe061bdbb3452840a
|
||||
LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
|
||||
LINUX_KERNEL_MD5SUM-4.4.28 = 841acb9109a893ab2f60b02355e1527e80fa09251e46339317f6984d69b1f4fc
|
||||
LINUX_KERNEL_MD5SUM-4.4.30 = 9d249133bd12dde04f434bb4a5a4a23dd42ead721803c0ba4b5742efd239995c
|
||||
|
||||
ifdef KERNEL_PATCHVER
|
||||
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
|
||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -873,6 +873,18 @@ static const struct flash_info *spi_nor_
|
||||
@@ -874,6 +874,18 @@ static const struct flash_info *spi_nor_
|
||||
}
|
||||
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %2x, %2x\n",
|
||||
id[0], id[1], id[2]);
|
||||
|
|
|
@ -68,7 +68,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
|||
spifi->nor.write = nxp_spifi_write;
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1111,7 +1111,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1112,7 +1112,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
const struct flash_info *info = NULL;
|
||||
struct device *dev = nor->dev;
|
||||
struct mtd_info *mtd = &nor->mtd;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
--- a/drivers/mtd/spi-nor/spi-nor.c 2016-10-09 00:34:19.206155838 +0200
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c 2016-10-09 00:37:11.048495602 +0200
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -721,6 +721,7 @@ static const struct flash_info spi_nor_i
|
||||
{ "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) },
|
||||
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) },
|
||||
|
|
|
@ -157,7 +157,6 @@
|
|||
+MODULE_AUTHOR("LXDB");
|
||||
+MODULE_DESCRIPTION("Software Watchdog For VPE1");
|
||||
+MODULE_LICENSE("GPL");
|
||||
|
||||
--- a/arch/mips/lantiq/Makefile
|
||||
+++ b/arch/mips/lantiq/Makefile
|
||||
@@ -6,6 +6,8 @@
|
||||
|
|
|
@ -36,7 +36,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|||
|
||||
--- a/arch/mips/lantiq/prom.c
|
||||
+++ b/arch/mips/lantiq/prom.c
|
||||
@@ -74,8 +74,8 @@ void __init plat_mem_setup(void)
|
||||
@@ -78,8 +78,8 @@ void __init plat_mem_setup(void)
|
||||
|
||||
set_io_port_base((unsigned long) KSEG1);
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Yuan Yao <yao.yuan@nxp.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1217,6 +1217,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1218,6 +1218,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
mtd->flags |= MTD_NO_ERASE;
|
||||
|
||||
mtd->dev.parent = dev;
|
||||
|
|
|
@ -69,7 +69,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
|||
spifi->nor.write = nxp_spifi_write;
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1111,7 +1111,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1112,7 +1112,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
const struct flash_info *info = NULL;
|
||||
struct device *dev = nor->dev;
|
||||
struct mtd_info *mtd = &nor->mtd;
|
||||
|
|
|
@ -14,7 +14,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1217,7 +1217,6 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1218,7 +1218,6 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
mtd->flags |= MTD_NO_ERASE;
|
||||
|
||||
mtd->dev.parent = dev;
|
||||
|
|
|
@ -16,7 +16,7 @@ Cc: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -860,7 +860,7 @@ static const struct flash_info *spi_nor_
|
||||
@@ -861,7 +861,7 @@ static const struct flash_info *spi_nor_
|
||||
|
||||
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
|
||||
if (tmp < 0) {
|
||||
|
|
|
@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
|||
|
||||
addr += mtd->erasesize;
|
||||
len -= mtd->erasesize;
|
||||
@@ -1098,7 +1121,7 @@ static int set_quad_mode(struct spi_nor
|
||||
@@ -1099,7 +1122,7 @@ static int set_quad_mode(struct spi_nor
|
||||
static int spi_nor_check(struct spi_nor *nor)
|
||||
{
|
||||
if (!nor->dev || !nor->read || !nor->write ||
|
||||
|
@ -78,7 +78,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
|||
pr_err("spi-nor: please fill all the necessary fields!\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -1299,6 +1322,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1300,6 +1323,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
nor->addr_width = 3;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -894,7 +894,7 @@ static const struct flash_info *spi_nor_
|
||||
@@ -895,7 +895,7 @@ static const struct flash_info *spi_nor_
|
||||
return &spi_nor_ids[tmp];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
|
||||
/* Cannot unlock; would unlock larger region than requested */
|
||||
if (stm_is_locked_sr(nor, ofs - mtd->erasesize, mtd->erasesize,
|
||||
@@ -1036,6 +1040,8 @@ static int macronix_quad_enable(struct s
|
||||
@@ -1037,6 +1041,8 @@ static int macronix_quad_enable(struct s
|
||||
int ret, val;
|
||||
|
||||
val = read_sr(nor);
|
||||
|
|
|
@ -24,7 +24,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1139,6 +1139,26 @@ static int spi_nor_check(struct spi_nor
|
||||
@@ -1140,6 +1140,26 @@ static int spi_nor_check(struct spi_nor
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
|
||||
{
|
||||
const struct flash_info *info = NULL;
|
||||
@@ -1186,18 +1206,9 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1187,18 +1207,9 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
mutex_init(&nor->lock);
|
||||
|
||||
|
@ -73,7 +73,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
|
||||
if (!mtd->name)
|
||||
mtd->name = dev_name(dev);
|
||||
@@ -1363,6 +1374,45 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1364,6 +1375,45 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(spi_nor_scan);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -922,7 +922,10 @@ static int spi_nor_read(struct mtd_info
|
||||
@@ -923,7 +923,10 @@ static int spi_nor_read(struct mtd_info
|
||||
ret = nor->read(nor, from, len, retlen, buf);
|
||||
|
||||
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
|
||||
|
@ -26,7 +26,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
}
|
||||
|
||||
static int sst_write(struct mtd_info *mtd, loff_t to, size_t len,
|
||||
@@ -948,10 +951,14 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -949,10 +952,14 @@ static int sst_write(struct mtd_info *mt
|
||||
nor->program_opcode = SPINOR_OP_BP;
|
||||
|
||||
/* write one byte. */
|
||||
|
@ -43,7 +43,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
}
|
||||
to += actual;
|
||||
|
||||
@@ -960,10 +967,14 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -961,10 +968,14 @@ static int sst_write(struct mtd_info *mt
|
||||
nor->program_opcode = SPINOR_OP_AAI_WP;
|
||||
|
||||
/* write two bytes. */
|
||||
|
@ -60,7 +60,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
to += 2;
|
||||
nor->sst_write_second = true;
|
||||
}
|
||||
@@ -972,21 +983,24 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -973,21 +984,24 @@ static int sst_write(struct mtd_info *mt
|
||||
write_disable(nor);
|
||||
ret = spi_nor_wait_till_ready(nor);
|
||||
if (ret)
|
||||
|
@ -90,7 +90,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
|
||||
return ret;
|
||||
}
|
||||
@@ -1015,14 +1029,18 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1016,14 +1030,18 @@ static int spi_nor_write(struct mtd_info
|
||||
|
||||
/* do all the bytes fit onto one page? */
|
||||
if (page_offset + len <= nor->page_size) {
|
||||
|
@ -112,7 +112,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
page_size = len - i;
|
||||
if (page_size > nor->page_size)
|
||||
page_size = nor->page_size;
|
||||
@@ -1033,7 +1051,11 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1034,7 +1052,11 @@ static int spi_nor_write(struct mtd_info
|
||||
|
||||
write_enable(nor);
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
u8 cmd = nor->read_opcode;
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -919,12 +919,13 @@ static int spi_nor_read(struct mtd_info
|
||||
@@ -920,12 +920,13 @@ static int spi_nor_read(struct mtd_info
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -128,7 +128,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -951,7 +952,7 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -952,7 +953,7 @@ static int sst_write(struct mtd_info *mt
|
||||
nor->program_opcode = SPINOR_OP_BP;
|
||||
|
||||
/* write one byte. */
|
||||
|
@ -137,7 +137,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
if (ret < 0)
|
||||
goto sst_write_err;
|
||||
WARN(ret != 1, "While writing 1 byte written %i bytes\n",
|
||||
@@ -967,7 +968,7 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -968,7 +969,7 @@ static int sst_write(struct mtd_info *mt
|
||||
nor->program_opcode = SPINOR_OP_AAI_WP;
|
||||
|
||||
/* write two bytes. */
|
||||
|
@ -146,7 +146,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
if (ret < 0)
|
||||
goto sst_write_err;
|
||||
WARN(ret != 2, "While writing 2 bytes written %i bytes\n",
|
||||
@@ -990,7 +991,7 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -991,7 +992,7 @@ static int sst_write(struct mtd_info *mt
|
||||
write_enable(nor);
|
||||
|
||||
nor->program_opcode = SPINOR_OP_BP;
|
||||
|
@ -155,7 +155,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
if (ret < 0)
|
||||
goto sst_write_err;
|
||||
WARN(ret != 1, "While writing 1 byte written %i bytes\n",
|
||||
@@ -999,8 +1000,10 @@ static int sst_write(struct mtd_info *mt
|
||||
@@ -1000,8 +1001,10 @@ static int sst_write(struct mtd_info *mt
|
||||
if (ret)
|
||||
goto sst_write_err;
|
||||
write_disable(nor);
|
||||
|
@ -166,7 +166,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
|
||||
return ret;
|
||||
}
|
||||
@@ -1029,15 +1032,17 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1030,15 +1033,17 @@ static int spi_nor_write(struct mtd_info
|
||||
|
||||
/* do all the bytes fit onto one page? */
|
||||
if (page_offset + len <= nor->page_size) {
|
||||
|
@ -186,7 +186,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
|
||||
/* write everything in nor->page_size chunks */
|
||||
for (i = ret; i < len; ) {
|
||||
@@ -1051,10 +1056,10 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1052,10 +1057,10 @@ static int spi_nor_write(struct mtd_info
|
||||
|
||||
write_enable(nor);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1017,8 +1017,8 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1018,8 +1018,8 @@ static int spi_nor_write(struct mtd_info
|
||||
size_t *retlen, const u_char *buf)
|
||||
{
|
||||
struct spi_nor *nor = mtd_to_spi_nor(mtd);
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
|
||||
dev_dbg(nor->dev, "to 0x%08x, len %zd\n", (u32)to, len);
|
||||
|
||||
@@ -1026,45 +1026,37 @@ static int spi_nor_write(struct mtd_info
|
||||
@@ -1027,45 +1027,37 @@ static int spi_nor_write(struct mtd_info
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -919,14 +919,22 @@ static int spi_nor_read(struct mtd_info
|
||||
@@ -920,14 +920,22 @@ static int spi_nor_read(struct mtd_info
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ Signed-off-by: Yunhui Cui <B56489@freescale.com>
|
|||
|
||||
struct flash_info {
|
||||
char *name;
|
||||
@@ -1237,6 +1238,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1238,6 +1239,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
|
||||
static const struct flash_info *spi_nor_match_id(const char *name);
|
||||
|
||||
@@ -784,6 +790,7 @@ static const struct flash_info spi_nor_i
|
||||
@@ -785,6 +791,7 @@ static const struct flash_info spi_nor_i
|
||||
*/
|
||||
{ "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
|
@ -41,7 +41,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl512s", INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
@@ -908,6 +915,53 @@ static const struct flash_info *spi_nor_
|
||||
@@ -909,6 +916,53 @@ static const struct flash_info *spi_nor_
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
size_t *retlen, u_char *buf)
|
||||
{
|
||||
@@ -1246,6 +1300,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1247,6 +1301,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
write_sr(nor, ret);
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
case SPI_NOR_NORMAL:
|
||||
return 0;
|
||||
}
|
||||
@@ -797,7 +802,8 @@ static const struct flash_info spi_nor_i
|
||||
@@ -798,7 +803,8 @@ static const struct flash_info spi_nor_i
|
||||
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
|
||||
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
||||
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
|
||||
|
@ -63,7 +63,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
{ "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8, 0) },
|
||||
@@ -1186,6 +1192,23 @@ static int spansion_quad_enable(struct s
|
||||
@@ -1187,6 +1193,23 @@ static int spansion_quad_enable(struct s
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -87,7 +87,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
static int set_quad_mode(struct spi_nor *nor, const struct flash_info *info)
|
||||
{
|
||||
int status;
|
||||
@@ -1375,8 +1398,15 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1376,8 +1399,15 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
if (info->flags & SPI_NOR_NO_FR)
|
||||
nor->flash_read = SPI_NOR_NORMAL;
|
||||
|
||||
|
@ -105,7 +105,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
ret = set_quad_mode(nor, info);
|
||||
if (ret) {
|
||||
dev_err(dev, "quad mode not supported\n");
|
||||
@@ -1389,6 +1419,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1390,6 +1420,14 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
/* Default commands */
|
||||
switch (nor->flash_read) {
|
||||
|
@ -120,7 +120,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
case SPI_NOR_QUAD:
|
||||
nor->read_opcode = SPINOR_OP_READ_1_1_4;
|
||||
break;
|
||||
@@ -1416,6 +1454,9 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1417,6 +1455,9 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
if (JEDEC_MFR(info) == SNOR_MFR_SPANSION) {
|
||||
/* Dedicated 4-byte command set */
|
||||
switch (nor->flash_read) {
|
||||
|
@ -130,7 +130,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
|||
case SPI_NOR_QUAD:
|
||||
nor->read_opcode = SPINOR_OP_READ4_1_1_4;
|
||||
break;
|
||||
@@ -1445,7 +1486,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1446,7 +1487,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -796,6 +796,7 @@ static const struct flash_info spi_nor_i
|
||||
@@ -797,6 +797,7 @@ static const struct flash_info spi_nor_i
|
||||
{ "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
|
|||
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl512s", INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
@@ -962,9 +963,11 @@ static int spansion_s25fs_disable_4kb_er
|
||||
@@ -963,9 +964,11 @@ static int spansion_s25fs_disable_4kb_er
|
||||
ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
@ -116,7 +116,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
* Used for Spansion S25FS-S family flash only.
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -796,7 +796,6 @@ static const struct flash_info spi_nor_i
|
||||
@@ -797,7 +797,6 @@ static const struct flash_info spi_nor_i
|
||||
{ "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
|
||||
|
@ -124,7 +124,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl512s", INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
@@ -963,11 +962,9 @@ static int spansion_s25fs_disable_4kb_er
|
||||
@@ -964,11 +963,9 @@ static int spansion_s25fs_disable_4kb_er
|
||||
ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -136,7 +136,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -1334,6 +1331,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1335,6 +1332,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
if (!mtd->name)
|
||||
mtd->name = dev_name(dev);
|
||||
|
|
|
@ -16,7 +16,7 @@ Integrated-by: Yutang Jiang <yutang.jiang@nxp.com>
|
|||
|
||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -802,7 +802,7 @@ static const struct flash_info spi_nor_i
|
||||
@@ -803,7 +803,7 @@ static const struct flash_info spi_nor_i
|
||||
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
|
||||
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
||||
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) },
|
||||
|
|
|
@ -133,7 +133,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
@@ -1148,7 +1149,6 @@ bad_args:
|
||||
@@ -1152,7 +1153,6 @@ bad_args:
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC
|
||||
|
|
|
@ -140,7 +140,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||
This option is overridden by CONFIG_RELOCATABLE
|
||||
--- a/drivers/misc/Kconfig
|
||||
+++ b/drivers/misc/Kconfig
|
||||
@@ -224,6 +224,23 @@ config SGI_XP
|
||||
@@ -236,6 +236,23 @@ config SGI_XP
|
||||
this feature will allow for direct communication between SSIs
|
||||
based on a network adapter and DMA messaging.
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ Signed-off-by: Liu Gang <Gang.Liu@nxp.com>
|
|||
|
||||
--- a/drivers/gpio/Kconfig
|
||||
+++ b/drivers/gpio/Kconfig
|
||||
@@ -281,12 +281,13 @@ config GPIO_MPC5200
|
||||
@@ -282,12 +282,13 @@ config GPIO_MPC5200
|
||||
depends on PPC_MPC52xx
|
||||
|
||||
config GPIO_MPC8XXX
|
||||
|
|
|
@ -51,7 +51,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||
.compat = "fsl,ls1043a-clockgen",
|
||||
.init_periph = t2080_init_periph,
|
||||
.cmux_groups = {
|
||||
@@ -1268,6 +1286,7 @@ CLK_OF_DECLARE(qoriq_clockgen_2, "fsl,qo
|
||||
@@ -1272,6 +1290,7 @@ CLK_OF_DECLARE(qoriq_clockgen_2, "fsl,qo
|
||||
CLK_OF_DECLARE(qoriq_clockgen_ls1021a, "fsl,ls1021a-clockgen", clockgen_init);
|
||||
CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "fsl,ls1043a-clockgen", clockgen_init);
|
||||
CLK_OF_DECLARE(qoriq_clockgen_ls2080a, "fsl,ls2080a-clockgen", clockgen_init);
|
||||
|
|
|
@ -4296,7 +4296,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
}
|
||||
|
||||
/*
|
||||
@@ -735,8 +868,8 @@ static const struct flash_info spi_nor_i
|
||||
@@ -736,8 +869,8 @@ static const struct flash_info spi_nor_i
|
||||
{ "n25q032a", INFO(0x20bb16, 0, 64 * 1024, 64, SPI_NOR_QUAD_READ) },
|
||||
{ "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) },
|
||||
{ "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) },
|
||||
|
@ -4307,7 +4307,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
{ "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) },
|
||||
{ "n25q512a", INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
|
||||
{ "n25q512ax3", INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
|
||||
@@ -770,6 +903,7 @@ static const struct flash_info spi_nor_i
|
||||
@@ -771,6 +904,7 @@ static const struct flash_info spi_nor_i
|
||||
{ "s25fl008k", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl016k", INFO(0xef4015, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||
{ "s25fl064k", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) },
|
||||
|
@ -4315,7 +4315,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
{ "s25fl132k", INFO(0x014016, 0, 64 * 1024, 64, SECT_4K) },
|
||||
{ "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128, SECT_4K) },
|
||||
{ "s25fl204k", INFO(0x014013, 0, 64 * 1024, 8, SECT_4K | SPI_NOR_DUAL_READ) },
|
||||
@@ -833,11 +967,23 @@ static const struct flash_info spi_nor_i
|
||||
@@ -834,11 +968,23 @@ static const struct flash_info spi_nor_i
|
||||
{ "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) },
|
||||
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
|
||||
{ "w25q32", INFO(0xef4016, 0, 64 * 1024, 64, SECT_4K) },
|
||||
|
@ -4342,7 +4342,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
{ "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) },
|
||||
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) },
|
||||
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
|
||||
@@ -860,7 +1006,7 @@ static const struct flash_info *spi_nor_
|
||||
@@ -861,7 +1007,7 @@ static const struct flash_info *spi_nor_
|
||||
|
||||
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
|
||||
if (tmp < 0) {
|
||||
|
@ -4351,7 +4351,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
return ERR_PTR(tmp);
|
||||
}
|
||||
|
||||
@@ -871,7 +1017,7 @@ static const struct flash_info *spi_nor_
|
||||
@@ -872,7 +1018,7 @@ static const struct flash_info *spi_nor_
|
||||
return &spi_nor_ids[tmp];
|
||||
}
|
||||
}
|
||||
|
@ -4360,7 +4360,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
id[0], id[1], id[2]);
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
@@ -1017,6 +1163,8 @@ static int macronix_quad_enable(struct s
|
||||
@@ -1018,6 +1164,8 @@ static int macronix_quad_enable(struct s
|
||||
int ret, val;
|
||||
|
||||
val = read_sr(nor);
|
||||
|
@ -4369,7 +4369,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
write_enable(nor);
|
||||
|
||||
write_sr(nor, val | SR_QUAD_EN_MX);
|
||||
@@ -1098,7 +1246,7 @@ static int set_quad_mode(struct spi_nor
|
||||
@@ -1099,7 +1247,7 @@ static int set_quad_mode(struct spi_nor
|
||||
static int spi_nor_check(struct spi_nor *nor)
|
||||
{
|
||||
if (!nor->dev || !nor->read || !nor->write ||
|
||||
|
@ -4378,7 +4378,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
pr_err("spi-nor: please fill all the necessary fields!\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -1111,7 +1259,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1112,7 +1260,7 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
const struct flash_info *info = NULL;
|
||||
struct device *dev = nor->dev;
|
||||
struct mtd_info *mtd = &nor->mtd;
|
||||
|
@ -4387,7 +4387,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
int ret;
|
||||
int i;
|
||||
|
||||
@@ -1161,9 +1309,11 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1162,9 +1310,11 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
|
||||
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
|
||||
JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
|
||||
|
@ -4400,7 +4400,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
}
|
||||
|
||||
if (!mtd->name)
|
||||
@@ -1177,7 +1327,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1178,7 +1328,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
mtd->_read = spi_nor_read;
|
||||
|
||||
/* NOR protection support for STmicro/Micron chips and similar */
|
||||
|
@ -4410,7 +4410,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
nor->flash_lock = stm_lock;
|
||||
nor->flash_unlock = stm_unlock;
|
||||
nor->flash_is_locked = stm_is_locked;
|
||||
@@ -1197,6 +1348,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1198,6 +1349,8 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
|
||||
if (info->flags & USE_FSR)
|
||||
nor->flags |= SNOR_F_USE_FSR;
|
||||
|
@ -4419,7 +4419,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||
|
||||
#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
|
||||
/* prefer "small sector" erase if possible */
|
||||
@@ -1299,6 +1452,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1300,6 +1453,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
nor->addr_width = 3;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,9 +24,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
|||
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -749,6 +749,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||
armada-385-linksys-caiman.dtb \
|
||||
@@ -750,6 +750,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||
armada-385-linksys-cobra.dtb \
|
||||
armada-385-linksys-rango.dtb \
|
||||
armada-385-linksys-shelby.dtb \
|
||||
+ armada-388-clearfog.dtb \
|
||||
armada-388-db.dtb \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||
@@ -1012,6 +1012,66 @@ write_err:
|
||||
@@ -1013,6 +1013,66 @@ write_err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@
|
|||
static int macronix_quad_enable(struct spi_nor *nor)
|
||||
{
|
||||
int ret, val;
|
||||
@@ -1190,10 +1250,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1191,10 +1251,12 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
}
|
||||
|
||||
/* sst nor chips use AAI word program */
|
||||
|
@ -82,7 +82,7 @@
|
|||
|
||||
if (info->flags & USE_FSR)
|
||||
nor->flags |= SNOR_F_USE_FSR;
|
||||
@@ -1221,11 +1283,20 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
@@ -1222,11 +1284,20 @@ int spi_nor_scan(struct spi_nor *nor, co
|
||||
mtd->writebufsize = nor->page_size;
|
||||
|
||||
if (np) {
|
||||
|
|
Loading…
Reference in New Issue