mirror of https://github.com/hak5/openwrt-owl.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>owl
parent
eefe07ef4d
commit
2f2ea7b44c
|
@ -4,11 +4,11 @@ LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-3.18 = .43
|
LINUX_VERSION-3.18 = .43
|
||||||
LINUX_VERSION-4.1 = .34
|
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-3.18.43 = b1faeb4a2e1e70ffe061bdbb3452840a
|
||||||
LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
|
LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
|
||||||
LINUX_KERNEL_MD5SUM-4.4.28 = 841acb9109a893ab2f60b02355e1527e80fa09251e46339317f6984d69b1f4fc
|
LINUX_KERNEL_MD5SUM-4.4.30 = 9d249133bd12dde04f434bb4a5a4a23dd42ead721803c0ba4b5742efd239995c
|
||||||
|
|
||||||
ifdef KERNEL_PATCHVER
|
ifdef KERNEL_PATCHVER
|
||||||
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(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
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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",
|
dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %2x, %2x\n",
|
||||||
id[0], id[1], id[2]);
|
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;
|
spifi->nor.write = nxp_spifi_write;
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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;
|
const struct flash_info *info = NULL;
|
||||||
struct device *dev = nor->dev;
|
struct device *dev = nor->dev;
|
||||||
struct mtd_info *mtd = &nor->mtd;
|
struct mtd_info *mtd = &nor->mtd;
|
||||||
|
|
|
@ -105,7 +105,7 @@ Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
|
||||||
-out_free_link:
|
-out_free_link:
|
||||||
if (link)
|
if (link)
|
||||||
free_page((unsigned long) link);
|
free_page((unsigned long) link);
|
||||||
|
|
||||||
--- a/fs/overlayfs/dir.c
|
--- a/fs/overlayfs/dir.c
|
||||||
+++ b/fs/overlayfs/dir.c
|
+++ b/fs/overlayfs/dir.c
|
||||||
@@ -408,28 +408,13 @@ static int ovl_create_or_link(struct den
|
@@ -408,28 +408,13 @@ static int ovl_create_or_link(struct den
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c 2016-10-09 00:34:19.206155838 +0200
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c 2016-10-09 00:37:11.048495602 +0200
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
||||||
@@ -721,6 +721,7 @@ static const struct flash_info spi_nor_i
|
@@ -721,6 +721,7 @@ static const struct flash_info spi_nor_i
|
||||||
{ "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) },
|
{ "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) },
|
||||||
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) },
|
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) },
|
||||||
|
|
|
@ -157,7 +157,6 @@
|
||||||
+MODULE_AUTHOR("LXDB");
|
+MODULE_AUTHOR("LXDB");
|
||||||
+MODULE_DESCRIPTION("Software Watchdog For VPE1");
|
+MODULE_DESCRIPTION("Software Watchdog For VPE1");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/Makefile
|
--- a/arch/mips/lantiq/Makefile
|
||||||
+++ b/arch/mips/lantiq/Makefile
|
+++ b/arch/mips/lantiq/Makefile
|
||||||
@@ -6,6 +6,8 @@
|
@@ -6,6 +6,8 @@
|
||||||
|
|
|
@ -36,7 +36,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/prom.c
|
--- a/arch/mips/lantiq/prom.c
|
||||||
+++ b/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);
|
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
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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->flags |= MTD_NO_ERASE;
|
||||||
|
|
||||||
mtd->dev.parent = dev;
|
mtd->dev.parent = dev;
|
||||||
|
|
|
@ -69,7 +69,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
spifi->nor.write = nxp_spifi_write;
|
spifi->nor.write = nxp_spifi_write;
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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;
|
const struct flash_info *info = NULL;
|
||||||
struct device *dev = nor->dev;
|
struct device *dev = nor->dev;
|
||||||
struct mtd_info *mtd = &nor->mtd;
|
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
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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->flags |= MTD_NO_ERASE;
|
||||||
|
|
||||||
mtd->dev.parent = dev;
|
mtd->dev.parent = dev;
|
||||||
|
|
|
@ -16,7 +16,7 @@ Cc: Cyrille Pitchen <cyrille.pitchen@atmel.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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);
|
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
|
||||||
if (tmp < 0) {
|
if (tmp < 0) {
|
||||||
|
|
|
@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
||||||
|
|
||||||
addr += mtd->erasesize;
|
addr += mtd->erasesize;
|
||||||
len -= 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)
|
static int spi_nor_check(struct spi_nor *nor)
|
||||||
{
|
{
|
||||||
if (!nor->dev || !nor->read || !nor->write ||
|
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");
|
pr_err("spi-nor: please fill all the necessary fields!\n");
|
||||||
return -EINVAL;
|
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;
|
nor->addr_width = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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];
|
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 */
|
/* Cannot unlock; would unlock larger region than requested */
|
||||||
if (stm_is_locked_sr(nor, ofs - mtd->erasesize, mtd->erasesize,
|
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;
|
int ret, val;
|
||||||
|
|
||||||
val = read_sr(nor);
|
val = read_sr(nor);
|
||||||
|
|
|
@ -24,7 +24,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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;
|
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)
|
int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
|
||||||
{
|
{
|
||||||
const struct flash_info *info = NULL;
|
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);
|
mutex_init(&nor->lock);
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
|
|
||||||
if (!mtd->name)
|
if (!mtd->name)
|
||||||
mtd->name = dev_name(dev);
|
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);
|
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
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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);
|
ret = nor->read(nor, from, len, retlen, buf);
|
||||||
|
|
||||||
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
|
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,
|
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;
|
nor->program_opcode = SPINOR_OP_BP;
|
||||||
|
|
||||||
/* write one byte. */
|
/* write one byte. */
|
||||||
|
@ -43,7 +43,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
||||||
}
|
}
|
||||||
to += actual;
|
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;
|
nor->program_opcode = SPINOR_OP_AAI_WP;
|
||||||
|
|
||||||
/* write two bytes. */
|
/* write two bytes. */
|
||||||
|
@ -60,7 +60,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
||||||
to += 2;
|
to += 2;
|
||||||
nor->sst_write_second = true;
|
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);
|
write_disable(nor);
|
||||||
ret = spi_nor_wait_till_ready(nor);
|
ret = spi_nor_wait_till_ready(nor);
|
||||||
if (ret)
|
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);
|
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
|
||||||
return ret;
|
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? */
|
/* do all the bytes fit onto one page? */
|
||||||
if (page_offset + len <= nor->page_size) {
|
if (page_offset + len <= nor->page_size) {
|
||||||
|
@ -112,7 +112,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
||||||
page_size = len - i;
|
page_size = len - i;
|
||||||
if (page_size > nor->page_size)
|
if (page_size > nor->page_size)
|
||||||
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);
|
write_enable(nor);
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
u8 cmd = nor->read_opcode;
|
u8 cmd = nor->read_opcode;
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
return 0;
|
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;
|
nor->program_opcode = SPINOR_OP_BP;
|
||||||
|
|
||||||
/* write one byte. */
|
/* write one byte. */
|
||||||
|
@ -137,7 +137,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto sst_write_err;
|
goto sst_write_err;
|
||||||
WARN(ret != 1, "While writing 1 byte written %i bytes\n",
|
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;
|
nor->program_opcode = SPINOR_OP_AAI_WP;
|
||||||
|
|
||||||
/* write two bytes. */
|
/* write two bytes. */
|
||||||
|
@ -146,7 +146,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto sst_write_err;
|
goto sst_write_err;
|
||||||
WARN(ret != 2, "While writing 2 bytes written %i bytes\n",
|
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);
|
write_enable(nor);
|
||||||
|
|
||||||
nor->program_opcode = SPINOR_OP_BP;
|
nor->program_opcode = SPINOR_OP_BP;
|
||||||
|
@ -155,7 +155,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto sst_write_err;
|
goto sst_write_err;
|
||||||
WARN(ret != 1, "While writing 1 byte written %i bytes\n",
|
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)
|
if (ret)
|
||||||
goto sst_write_err;
|
goto sst_write_err;
|
||||||
write_disable(nor);
|
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);
|
spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
|
||||||
return ret;
|
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? */
|
/* do all the bytes fit onto one page? */
|
||||||
if (page_offset + len <= nor->page_size) {
|
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 */
|
/* write everything in nor->page_size chunks */
|
||||||
for (i = ret; i < len; ) {
|
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);
|
write_enable(nor);
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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)
|
size_t *retlen, const u_char *buf)
|
||||||
{
|
{
|
||||||
struct spi_nor *nor = mtd_to_spi_nor(mtd);
|
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);
|
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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ Signed-off-by: Yunhui Cui <B56489@freescale.com>
|
||||||
|
|
||||||
struct flash_info {
|
struct flash_info {
|
||||||
char *name;
|
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)
|
if (ret)
|
||||||
return 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);
|
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) },
|
{ "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) },
|
{ "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) },
|
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
{ "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) },
|
{ "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);
|
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,
|
static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len,
|
||||||
size_t *retlen, u_char *buf)
|
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);
|
write_sr(nor, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
||||||
case SPI_NOR_NORMAL:
|
case SPI_NOR_NORMAL:
|
||||||
return 0;
|
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) },
|
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
|
||||||
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
||||||
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 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) },
|
{ "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) },
|
{ "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||||
{ "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8, 0) },
|
{ "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;
|
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)
|
static int set_quad_mode(struct spi_nor *nor, const struct flash_info *info)
|
||||||
{
|
{
|
||||||
int status;
|
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)
|
if (info->flags & SPI_NOR_NO_FR)
|
||||||
nor->flash_read = SPI_NOR_NORMAL;
|
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);
|
ret = set_quad_mode(nor, info);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "quad mode not supported\n");
|
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 */
|
/* Default commands */
|
||||||
switch (nor->flash_read) {
|
switch (nor->flash_read) {
|
||||||
|
@ -120,7 +120,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
||||||
case SPI_NOR_QUAD:
|
case SPI_NOR_QUAD:
|
||||||
nor->read_opcode = SPINOR_OP_READ_1_1_4;
|
nor->read_opcode = SPINOR_OP_READ_1_1_4;
|
||||||
break;
|
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) {
|
if (JEDEC_MFR(info) == SNOR_MFR_SPANSION) {
|
||||||
/* Dedicated 4-byte command set */
|
/* Dedicated 4-byte command set */
|
||||||
switch (nor->flash_read) {
|
switch (nor->flash_read) {
|
||||||
|
@ -130,7 +130,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
|
||||||
case SPI_NOR_QUAD:
|
case SPI_NOR_QUAD:
|
||||||
nor->read_opcode = SPINOR_OP_READ4_1_1_4;
|
nor->read_opcode = SPINOR_OP_READ4_1_1_4;
|
||||||
break;
|
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;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
|
||||||
|
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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) },
|
{ "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) },
|
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||||
{ "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
|
{ "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) },
|
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
{ "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) },
|
{ "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);
|
ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -116,7 +116,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
* Used for Spansion S25FS-S family flash only.
|
* Used for Spansion S25FS-S family flash only.
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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) },
|
{ "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) },
|
{ "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
||||||
{ "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
|
{ "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) },
|
{ "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
|
||||||
{ "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
{ "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) },
|
{ "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);
|
ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -136,7 +136,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
|
||||||
return 0;
|
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)
|
if (!mtd->name)
|
||||||
mtd->name = dev_name(dev);
|
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
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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) },
|
{ "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
|
||||||
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
{ "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) },
|
||||||
{ "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 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/io.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
@@ -1148,7 +1149,6 @@ bad_args:
|
@@ -1152,7 +1153,6 @@ bad_args:
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PPC
|
#ifdef CONFIG_PPC
|
||||||
|
|
|
@ -140,7 +140,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||||
This option is overridden by CONFIG_RELOCATABLE
|
This option is overridden by CONFIG_RELOCATABLE
|
||||||
--- a/drivers/misc/Kconfig
|
--- a/drivers/misc/Kconfig
|
||||||
+++ b/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
|
this feature will allow for direct communication between SSIs
|
||||||
based on a network adapter and DMA messaging.
|
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
|
--- a/drivers/gpio/Kconfig
|
||||||
+++ b/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
|
depends on PPC_MPC52xx
|
||||||
|
|
||||||
config GPIO_MPC8XXX
|
config GPIO_MPC8XXX
|
||||||
|
|
|
@ -51,7 +51,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
|
||||||
.compat = "fsl,ls1043a-clockgen",
|
.compat = "fsl,ls1043a-clockgen",
|
||||||
.init_periph = t2080_init_periph,
|
.init_periph = t2080_init_periph,
|
||||||
.cmux_groups = {
|
.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_ls1021a, "fsl,ls1021a-clockgen", clockgen_init);
|
||||||
CLK_OF_DECLARE(qoriq_clockgen_ls1043a, "fsl,ls1043a-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);
|
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) },
|
{ "n25q032a", INFO(0x20bb16, 0, 64 * 1024, 64, SPI_NOR_QUAD_READ) },
|
||||||
{ "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | 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) },
|
{ "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) },
|
{ "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) },
|
{ "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) },
|
{ "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) },
|
{ "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) },
|
{ "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) },
|
{ "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) },
|
{ "s25fl132k", INFO(0x014016, 0, 64 * 1024, 64, SECT_4K) },
|
||||||
{ "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128, SECT_4K) },
|
{ "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128, SECT_4K) },
|
||||||
{ "s25fl204k", INFO(0x014013, 0, 64 * 1024, 8, SECT_4K | SPI_NOR_DUAL_READ) },
|
{ "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) },
|
{ "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) },
|
||||||
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
|
{ "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) },
|
||||||
{ "w25q32", INFO(0xef4016, 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) },
|
{ "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) },
|
||||||
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) },
|
{ "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) },
|
||||||
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, 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);
|
tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
|
||||||
if (tmp < 0) {
|
if (tmp < 0) {
|
||||||
|
@ -4351,7 +4351,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
return ERR_PTR(tmp);
|
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];
|
return &spi_nor_ids[tmp];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4360,7 +4360,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
id[0], id[1], id[2]);
|
id[0], id[1], id[2]);
|
||||||
return ERR_PTR(-ENODEV);
|
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;
|
int ret, val;
|
||||||
|
|
||||||
val = read_sr(nor);
|
val = read_sr(nor);
|
||||||
|
@ -4369,7 +4369,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
write_enable(nor);
|
write_enable(nor);
|
||||||
|
|
||||||
write_sr(nor, val | SR_QUAD_EN_MX);
|
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)
|
static int spi_nor_check(struct spi_nor *nor)
|
||||||
{
|
{
|
||||||
if (!nor->dev || !nor->read || !nor->write ||
|
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");
|
pr_err("spi-nor: please fill all the necessary fields!\n");
|
||||||
return -EINVAL;
|
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;
|
const struct flash_info *info = NULL;
|
||||||
struct device *dev = nor->dev;
|
struct device *dev = nor->dev;
|
||||||
struct mtd_info *mtd = &nor->mtd;
|
struct mtd_info *mtd = &nor->mtd;
|
||||||
|
@ -4387,7 +4387,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
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 ||
|
if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
|
||||||
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
|
JEDEC_MFR(info) == SNOR_MFR_INTEL ||
|
||||||
JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
|
JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
|
||||||
|
@ -4400,7 +4400,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mtd->name)
|
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;
|
mtd->_read = spi_nor_read;
|
||||||
|
|
||||||
/* NOR protection support for STmicro/Micron chips and similar */
|
/* 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_lock = stm_lock;
|
||||||
nor->flash_unlock = stm_unlock;
|
nor->flash_unlock = stm_unlock;
|
||||||
nor->flash_is_locked = stm_is_locked;
|
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)
|
if (info->flags & USE_FSR)
|
||||||
nor->flags |= SNOR_F_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
|
#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
|
||||||
/* prefer "small sector" erase if possible */
|
/* 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;
|
nor->addr_width = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,9 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
|
||||||
|
|
||||||
--- a/arch/arm/boot/dts/Makefile
|
--- a/arch/arm/boot/dts/Makefile
|
||||||
+++ b/arch/arm/boot/dts/Makefile
|
+++ b/arch/arm/boot/dts/Makefile
|
||||||
@@ -749,6 +749,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
@@ -750,6 +750,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||||
armada-385-linksys-caiman.dtb \
|
|
||||||
armada-385-linksys-cobra.dtb \
|
armada-385-linksys-cobra.dtb \
|
||||||
|
armada-385-linksys-rango.dtb \
|
||||||
armada-385-linksys-shelby.dtb \
|
armada-385-linksys-shelby.dtb \
|
||||||
+ armada-388-clearfog.dtb \
|
+ armada-388-clearfog.dtb \
|
||||||
armada-388-db.dtb \
|
armada-388-db.dtb \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
||||||
+++ b/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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
static int macronix_quad_enable(struct spi_nor *nor)
|
static int macronix_quad_enable(struct spi_nor *nor)
|
||||||
{
|
{
|
||||||
int ret, val;
|
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 */
|
/* sst nor chips use AAI word program */
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
|
|
||||||
if (info->flags & USE_FSR)
|
if (info->flags & USE_FSR)
|
||||||
nor->flags |= SNOR_F_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;
|
mtd->writebufsize = nor->page_size;
|
||||||
|
|
||||||
if (np) {
|
if (np) {
|
||||||
|
|
Loading…
Reference in New Issue