aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-4.4
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2016-12-20 05:19:08 -0300
committerMathias Kresin <dev@kresin.me>2017-01-03 19:58:00 +0100
commitd6c831e0e5a0ef97eb054dd3eb382d66b1bffc40 (patch)
treeb5723cc59f2456cbda62eeee4556c8cf88b7c50f /target/linux/layerscape/patches-4.4
parent799d0dddf608ff012b49282d5832ddd2ef1b916e (diff)
downloadupstream-d6c831e0e5a0ef97eb054dd3eb382d66b1bffc40.tar.gz
upstream-d6c831e0e5a0ef97eb054dd3eb382d66b1bffc40.tar.bz2
upstream-d6c831e0e5a0ef97eb054dd3eb382d66b1bffc40.zip
generic: mtd: backport SPI_NOR_HAS_LOCK
This flag was added to 4.9 with upstream commit 76a4707de5e18dc32d9cb4e990686140c5664a15. Signed-off-by: Victor Shyba <victor1984@riseup.net> [refresh and adjust platform patches, fix commit message] Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'target/linux/layerscape/patches-4.4')
-rw-r--r--target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch8
-rw-r--r--target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1084-mtd-spi-nor-fix-error-handling-in-spi_nor_erase.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch6
-rw-r--r--target/linux/layerscape/patches-4.4/1086-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch8
-rw-r--r--target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch9
-rw-r--r--target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch12
-rw-r--r--target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch14
-rw-r--r--target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch4
-rw-r--r--target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch2
-rw-r--r--target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch8
-rw-r--r--target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch16
-rw-r--r--target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch4
-rw-r--r--target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch6
-rw-r--r--target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch2
20 files changed, 57 insertions, 56 deletions
diff --git a/target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch b/target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch
index 450d7057c2..e383347895 100644
--- a/target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch
+++ b/target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch
@@ -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
-@@ -1218,6 +1218,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1221,6 +1221,7 @@ int spi_nor_scan(struct spi_nor *nor, co
mtd->flags |= MTD_NO_ERASE;
mtd->dev.parent = dev;
diff --git a/target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch b/target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch
index 1b19d2d4d4..596cc6fcb7 100644
--- a/target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch
+++ b/target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch
@@ -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
-@@ -1112,7 +1112,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1113,7 +1113,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;
diff --git a/target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch b/target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch
index 08fe44253a..45c69a85cd 100644
--- a/target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch
+++ b/target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch
@@ -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
-@@ -1218,7 +1218,6 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1221,7 +1221,6 @@ int spi_nor_scan(struct spi_nor *nor, co
mtd->flags |= MTD_NO_ERASE;
mtd->dev.parent = dev;
diff --git a/target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch b/target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch
index 713c1c9031..13b30cf7e3 100644
--- a/target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch
+++ b/target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch
@@ -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
-@@ -861,7 +861,7 @@ static const struct flash_info *spi_nor_
+@@ -862,7 +862,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) {
diff --git a/target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch b/target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch
index 85f6cc6da9..c5029b87a2 100644
--- a/target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch
+++ b/target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch
@@ -26,7 +26,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
struct flash_info {
char *name;
-@@ -313,6 +314,29 @@ static void spi_nor_unlock_and_unprep(st
+@@ -314,6 +315,29 @@ static void spi_nor_unlock_and_unprep(st
}
/*
@@ -56,7 +56,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
* Erase an address range on the nor chip. The address range may extend
* one or more erase sectors. Return an error is there is a problem erasing.
*/
-@@ -371,10 +395,9 @@ static int spi_nor_erase(struct mtd_info
+@@ -372,10 +396,9 @@ static int spi_nor_erase(struct mtd_info
while (len) {
write_enable(nor);
@@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
addr += mtd->erasesize;
len -= mtd->erasesize;
-@@ -1099,7 +1122,7 @@ static int set_quad_mode(struct spi_nor
+@@ -1100,7 +1123,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;
}
-@@ -1300,6 +1323,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1303,6 +1326,12 @@ int spi_nor_scan(struct spi_nor *nor, co
nor->addr_width = 3;
}
diff --git a/target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch b/target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch
index d53942df84..6ebbdb417d 100644
--- a/target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch
+++ b/target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch
@@ -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
-@@ -895,7 +895,7 @@ static const struct flash_info *spi_nor_
+@@ -896,7 +896,7 @@ static const struct flash_info *spi_nor_
return &spi_nor_ids[tmp];
}
}
diff --git a/target/linux/layerscape/patches-4.4/1084-mtd-spi-nor-fix-error-handling-in-spi_nor_erase.patch b/target/linux/layerscape/patches-4.4/1084-mtd-spi-nor-fix-error-handling-in-spi_nor_erase.patch
index 3930028d97..53501315e9 100644
--- a/target/linux/layerscape/patches-4.4/1084-mtd-spi-nor-fix-error-handling-in-spi_nor_erase.patch
+++ b/target/linux/layerscape/patches-4.4/1084-mtd-spi-nor-fix-error-handling-in-spi_nor_erase.patch
@@ -17,7 +17,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
-@@ -410,17 +410,13 @@ static int spi_nor_erase(struct mtd_info
+@@ -411,17 +411,13 @@ static int spi_nor_erase(struct mtd_info
write_disable(nor);
diff --git a/target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch b/target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch
index 96d9309e4b..cca7ac1797 100644
--- a/target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch
+++ b/target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch
@@ -17,7 +17,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
-@@ -478,11 +478,13 @@ static int stm_is_locked_sr(struct spi_n
+@@ -479,11 +479,13 @@ static int stm_is_locked_sr(struct spi_n
static int stm_lock(struct spi_nor *nor, loff_t ofs, uint64_t len)
{
struct mtd_info *mtd = &nor->mtd;
@@ -32,7 +32,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
/* SPI NOR always locks to the end */
if (ofs + len != mtd->size) {
-@@ -528,11 +530,13 @@ static int stm_lock(struct spi_nor *nor,
+@@ -529,11 +531,13 @@ static int stm_lock(struct spi_nor *nor,
static int stm_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len)
{
struct mtd_info *mtd = &nor->mtd;
@@ -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,
-@@ -1037,6 +1041,8 @@ static int macronix_quad_enable(struct s
+@@ -1038,6 +1042,8 @@ static int macronix_quad_enable(struct s
int ret, val;
val = read_sr(nor);
diff --git a/target/linux/layerscape/patches-4.4/1086-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch b/target/linux/layerscape/patches-4.4/1086-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
index 7bcfd515da..47f2c8326b 100644
--- a/target/linux/layerscape/patches-4.4/1086-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
+++ b/target/linux/layerscape/patches-4.4/1086-mtd-spi-nor-wait-until-lock-unlock-operations-are-re.patch
@@ -24,7 +24,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
-@@ -481,6 +481,7 @@ static int stm_lock(struct spi_nor *nor,
+@@ -482,6 +482,7 @@ static int stm_lock(struct spi_nor *nor,
int status_old, status_new;
u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
u8 shift = ffs(mask) - 1, pow, val;
@@ -32,7 +32,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
status_old = read_sr(nor);
if (status_old < 0)
-@@ -519,7 +520,10 @@ static int stm_lock(struct spi_nor *nor,
+@@ -520,7 +521,10 @@ static int stm_lock(struct spi_nor *nor,
return -EINVAL;
write_enable(nor);
@@ -44,7 +44,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
}
/*
-@@ -533,6 +537,7 @@ static int stm_unlock(struct spi_nor *no
+@@ -534,6 +538,7 @@ static int stm_unlock(struct spi_nor *no
int status_old, status_new;
u8 mask = SR_BP2 | SR_BP1 | SR_BP0;
u8 shift = ffs(mask) - 1, pow, val;
@@ -52,7 +52,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
status_old = read_sr(nor);
if (status_old < 0)
-@@ -569,7 +574,10 @@ static int stm_unlock(struct spi_nor *no
+@@ -570,7 +575,10 @@ static int stm_unlock(struct spi_nor *no
return -EINVAL;
write_enable(nor);
diff --git a/target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch b/target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch
index 10be8072fc..65a6633453 100644
--- a/target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch
+++ b/target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch
@@ -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
-@@ -1140,6 +1140,26 @@ static int spi_nor_check(struct spi_nor
+@@ -1141,6 +1141,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;
-@@ -1187,18 +1207,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1188,19 +1208,9 @@ int spi_nor_scan(struct spi_nor *nor, co
mutex_init(&nor->lock);
@@ -63,7 +63,8 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
- if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
- JEDEC_MFR(info) == SNOR_MFR_INTEL ||
- JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
-- JEDEC_MFR(info) == SNOR_MFR_SST) {
+- JEDEC_MFR(info) == SNOR_MFR_SST ||
+- info->flags & SPI_NOR_HAS_LOCK) {
- write_enable(nor);
- write_sr(nor, 0);
- }
@@ -73,7 +74,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
if (!mtd->name)
mtd->name = dev_name(dev);
-@@ -1364,6 +1375,45 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1367,6 +1377,45 @@ int spi_nor_scan(struct spi_nor *nor, co
}
EXPORT_SYMBOL_GPL(spi_nor_scan);
diff --git a/target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch b/target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch
index 79c71b271d..85a231515f 100644
--- a/target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch
+++ b/target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch
@@ -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
-@@ -923,7 +923,10 @@ static int spi_nor_read(struct mtd_info
+@@ -924,7 +924,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,
-@@ -949,10 +952,14 @@ static int sst_write(struct mtd_info *mt
+@@ -950,10 +953,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;
-@@ -961,10 +968,14 @@ static int sst_write(struct mtd_info *mt
+@@ -962,10 +969,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;
}
-@@ -973,21 +984,24 @@ static int sst_write(struct mtd_info *mt
+@@ -974,21 +985,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;
}
-@@ -1016,14 +1030,18 @@ static int spi_nor_write(struct mtd_info
+@@ -1017,14 +1031,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;
-@@ -1034,7 +1052,11 @@ static int spi_nor_write(struct mtd_info
+@@ -1035,7 +1053,11 @@ static int spi_nor_write(struct mtd_info
write_enable(nor);
diff --git a/target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch b/target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch
index 772eb9e706..f72bc2c820 100644
--- a/target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch
+++ b/target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch
@@ -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
-@@ -920,12 +920,13 @@ static int spi_nor_read(struct mtd_info
+@@ -921,12 +921,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;
}
-@@ -952,7 +953,7 @@ static int sst_write(struct mtd_info *mt
+@@ -953,7 +954,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",
-@@ -968,7 +969,7 @@ static int sst_write(struct mtd_info *mt
+@@ -969,7 +970,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",
-@@ -991,7 +992,7 @@ static int sst_write(struct mtd_info *mt
+@@ -992,7 +993,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",
-@@ -1000,8 +1001,10 @@ static int sst_write(struct mtd_info *mt
+@@ -1001,8 +1002,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;
}
-@@ -1030,15 +1033,17 @@ static int spi_nor_write(struct mtd_info
+@@ -1031,15 +1034,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; ) {
-@@ -1052,10 +1057,10 @@ static int spi_nor_write(struct mtd_info
+@@ -1053,10 +1058,10 @@ static int spi_nor_write(struct mtd_info
write_enable(nor);
diff --git a/target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch b/target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch
index f07694e7cf..f3179cd56e 100644
--- a/target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch
+++ b/target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch
@@ -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
-@@ -1018,8 +1018,8 @@ static int spi_nor_write(struct mtd_info
+@@ -1019,8 +1019,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);
-@@ -1027,45 +1027,37 @@ static int spi_nor_write(struct mtd_info
+@@ -1028,45 +1028,37 @@ static int spi_nor_write(struct mtd_info
if (ret)
return ret;
diff --git a/target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch b/target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch
index 604baa3e05..59d9f3e88a 100644
--- a/target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch
+++ b/target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch
@@ -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
-@@ -920,14 +920,22 @@ static int spi_nor_read(struct mtd_info
+@@ -921,14 +921,22 @@ static int spi_nor_read(struct mtd_info
if (ret)
return ret;
diff --git a/target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch b/target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch
index 5e61b2cdae..a5495616e9 100644
--- a/target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch
+++ b/target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch
@@ -24,7 +24,7 @@ Signed-off-by: Yunhui Cui <B56489@freescale.com>
struct flash_info {
char *name;
-@@ -1238,6 +1239,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1239,6 +1240,14 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
diff --git a/target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch b/target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch
index 9b3f69d4e1..9cfa2697a8 100644
--- a/target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch
+++ b/target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch
@@ -24,7 +24,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
struct flash_info {
char *name;
-@@ -73,6 +77,8 @@ struct flash_info {
+@@ -74,6 +78,8 @@ struct flash_info {
};
#define JEDEC_MFR(info) ((info)->id[0])
@@ -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);
-@@ -785,6 +791,7 @@ static const struct flash_info spi_nor_i
+@@ -786,6 +792,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) },
-@@ -909,6 +916,53 @@ static const struct flash_info *spi_nor_
+@@ -910,6 +917,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)
{
-@@ -1247,6 +1301,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1248,6 +1302,12 @@ int spi_nor_scan(struct spi_nor *nor, co
write_sr(nor, ret);
}
diff --git a/target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch b/target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch
index 1afc405f77..bad120e7be 100644
--- a/target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch
+++ b/target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch
@@ -31,10 +31,10 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
-#define USE_FSR 0x80 /* use flag status register */
+#define SPI_NOR_DDR_QUAD_READ 0x80 /* Flash supports DDR Quad Read */
+#define USE_FSR 0x100 /* use flag status register */
+ #define SPI_NOR_HAS_LOCK 0x100 /* Flash supports lock/unlock via SR */
};
- #define JEDEC_MFR(info) ((info)->id[0])
-@@ -144,13 +145,17 @@ static int read_cr(struct spi_nor *nor)
+@@ -145,13 +146,17 @@ static int read_cr(struct spi_nor *nor)
* It can be used to support more commands with
* different dummy cycle requirements.
*/
@@ -53,7 +53,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
case SPI_NOR_NORMAL:
return 0;
}
-@@ -798,7 +803,8 @@ static const struct flash_info spi_nor_i
+@@ -799,7 +804,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) },
-@@ -1187,6 +1193,23 @@ static int spansion_quad_enable(struct s
+@@ -1188,6 +1194,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;
-@@ -1376,8 +1399,15 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1378,8 +1401,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");
-@@ -1390,6 +1420,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1392,6 +1422,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;
-@@ -1417,6 +1455,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1419,6 +1457,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;
-@@ -1446,7 +1487,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1448,7 +1489,7 @@ int spi_nor_scan(struct spi_nor *nor, co
return -EINVAL;
}
diff --git a/target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch b/target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch
index 64773fd566..95321ebf1b 100644
--- a/target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch
+++ b/target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch
@@ -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
-@@ -797,6 +797,7 @@ static const struct flash_info spi_nor_i
+@@ -798,6 +798,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) },
-@@ -963,9 +964,11 @@ static int spansion_s25fs_disable_4kb_er
+@@ -964,9 +965,11 @@ static int spansion_s25fs_disable_4kb_er
ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
if (ret)
return ret;
diff --git a/target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch b/target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch
index 34ad68736f..8dab548550 100644
--- a/target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch
+++ b/target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch
@@ -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
-@@ -797,7 +797,6 @@ static const struct flash_info spi_nor_i
+@@ -798,7 +798,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) },
-@@ -964,11 +963,9 @@ static int spansion_s25fs_disable_4kb_er
+@@ -965,11 +964,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;
}
-@@ -1335,6 +1332,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1336,6 +1333,8 @@ int spi_nor_scan(struct spi_nor *nor, co
if (!mtd->name)
mtd->name = dev_name(dev);
diff --git a/target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch b/target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch
index aba6958bd4..f9cdb88f13 100644
--- a/target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch
+++ b/target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch
@@ -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
-@@ -803,7 +803,7 @@ static const struct flash_info spi_nor_i
+@@ -804,7 +804,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) },