mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-05 00:53:32 +08:00
kernel: bump to 5.4.284
This commit is contained in:
parent
1cf1922e1a
commit
3e36ea146a
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.4 = .255
|
||||
LINUX_KERNEL_HASH-5.4.255 = 34d5ed902f47d90f27b9d5d6b8db0d3fa660834111f9452e166d920968a4a061
|
||||
LINUX_VERSION-5.4 = .284
|
||||
LINUX_KERNEL_HASH-5.4.284 = 77221ab9aebeac746915c755ec3b7d320f85cd219c63d9c501820fbca1e3b32b
|
||||
|
@ -31,19 +31,19 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
|
||||
|
||||
--- a/arch/arm64/include/asm/cpucaps.h
|
||||
+++ b/arch/arm64/include/asm/cpucaps.h
|
||||
@@ -57,7 +57,8 @@
|
||||
#define ARM64_WORKAROUND_1542419 47
|
||||
@@ -58,7 +58,8 @@
|
||||
#define ARM64_SPECTRE_BHB 48
|
||||
#define ARM64_WORKAROUND_1742098 49
|
||||
+#define ARM64_HW_AF 50
|
||||
#define ARM64_WORKAROUND_SPECULATIVE_SSBS 50
|
||||
+#define ARM64_HW_AF 51
|
||||
|
||||
-#define ARM64_NCAPS 50
|
||||
+#define ARM64_NCAPS 51
|
||||
-#define ARM64_NCAPS 51
|
||||
+#define ARM64_NCAPS 52
|
||||
|
||||
#endif /* __ASM_CPUCAPS_H */
|
||||
--- a/arch/arm64/include/asm/cpufeature.h
|
||||
+++ b/arch/arm64/include/asm/cpufeature.h
|
||||
@@ -643,6 +643,12 @@ static inline bool system_has_prio_mask_
|
||||
@@ -666,6 +666,12 @@ static inline bool system_has_prio_mask_
|
||||
system_uses_irq_prio_masking();
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
|
||||
#include <linux/mmdebug.h>
|
||||
#include <linux/mm_types.h>
|
||||
#include <linux/sched.h>
|
||||
@@ -848,6 +849,12 @@ static inline pmd_t pmdp_establish(struc
|
||||
@@ -854,6 +855,12 @@ static inline pmd_t pmdp_establish(struc
|
||||
|
||||
extern int kern_addr_valid(unsigned long addr);
|
||||
|
||||
@ -81,7 +81,7 @@ Commit-Queue: Yu Zhao <yuzhao@chromium.org>
|
||||
/*
|
||||
--- a/arch/arm64/kernel/cpufeature.c
|
||||
+++ b/arch/arm64/kernel/cpufeature.c
|
||||
@@ -1484,6 +1484,16 @@ static const struct arm64_cpu_capabiliti
|
||||
@@ -1541,6 +1541,16 @@ static const struct arm64_cpu_capabiliti
|
||||
.matches = has_hw_dbm,
|
||||
.cpu_enable = cpu_enable_hw_dbm,
|
||||
},
|
||||
|
@ -0,0 +1,202 @@
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -118,23 +118,8 @@ static const struct spinand_info macroni
|
||||
&update_cache_variants),
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
- SPINAND_INFO("MX35LF2GE4AD", 0x26,
|
||||
- NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
||||
- NAND_ECCREQ(8, 512),
|
||||
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
- &write_cache_variants,
|
||||
- &update_cache_variants),
|
||||
- SPINAND_HAS_QE_BIT,
|
||||
- SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
- SPINAND_INFO("MX35LF4GE4AD", 0x37,
|
||||
- NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1),
|
||||
- NAND_ECCREQ(8, 512),
|
||||
- SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
- &write_cache_variants,
|
||||
- &update_cache_variants),
|
||||
- SPINAND_HAS_QE_BIT,
|
||||
- SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
- SPINAND_INFO("MX35LF2G14AC", 0x20,
|
||||
+ SPINAND_INFO("MX35LF2G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x20),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1),
|
||||
NAND_ECCREQ(4, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -143,7 +128,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF4G24AD", 0xb5,
|
||||
+ SPINAND_INFO("MX35UF4G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5),
|
||||
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -152,7 +138,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF4GE4AD", 0xb7,
|
||||
+ SPINAND_INFO("MX35UF4GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7),
|
||||
NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -161,7 +148,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF2G14AC", 0xa0,
|
||||
+ SPINAND_INFO("MX35UF2G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa0),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1),
|
||||
NAND_ECCREQ(4, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -170,7 +158,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF2G24AD", 0xa4,
|
||||
+ SPINAND_INFO("MX35UF2G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4),
|
||||
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -179,7 +168,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF2GE4AD", 0xa6,
|
||||
+ SPINAND_INFO("MX35UF2GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6),
|
||||
NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -188,7 +178,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF2GE4AC", 0xa2,
|
||||
+ SPINAND_INFO("MX35UF2GE4AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
||||
NAND_ECCREQ(4, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -197,7 +188,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF1G14AC", 0x90,
|
||||
+ SPINAND_INFO("MX35UF1G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x90),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
NAND_ECCREQ(4, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -206,7 +198,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF1G24AD", 0x94,
|
||||
+ SPINAND_INFO("MX35UF1G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94),
|
||||
NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -215,7 +208,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF1GE4AD", 0x96,
|
||||
+ SPINAND_INFO("MX35UF1GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96),
|
||||
NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -224,7 +218,8 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
- SPINAND_INFO("MX35UF1GE4AC", 0x92,
|
||||
+ SPINAND_INFO("MX35UF1GE4AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
NAND_ECCREQ(4, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
@@ -233,6 +228,73 @@ static const struct spinand_info macroni
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX31LF1GE4BC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX31UF1GE4BC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x9e),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35LF2GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35LF4GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37),
|
||||
+ NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35LF1G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX35LF2G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX35LF4G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35),
|
||||
+ NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
};
|
||||
|
||||
static const struct spinand_manufacturer_ops macronix_spinand_manuf_ops = {
|
@ -1,40 +0,0 @@
|
||||
From 051e070d0a019df6be9e21be1fb63352e4c4412e Mon Sep 17 00:00:00 2001
|
||||
From: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Date: Wed, 22 Jul 2020 16:02:57 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add support for MX31LF1GE4BC
|
||||
|
||||
The Macronix MX31LF1GE4BC is a 3V, 1Gbit (128MB) serial
|
||||
NAND flash device.
|
||||
|
||||
Validated by read, erase, read back, write and read back
|
||||
on Xilinx Zynq PicoZed FPGA board which included
|
||||
Macronix SPI Host (driver/spi/spi-mxic.c).
|
||||
|
||||
Signed-off-by: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1595404978-31079-2-git-send-email-ycllin@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index 9ff8debd599418..9ae48ce1c46f91 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -119,6 +119,16 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
&update_cache_variants),
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX31LF1GE4BC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0 /*SPINAND_HAS_QE_BIT*/,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
};
|
||||
|
||||
static const struct spinand_manufacturer_ops macronix_spinand_manuf_ops = {
|
@ -1,40 +0,0 @@
|
||||
From 75b049bb7f89a58a25592f17baf91d703f0f548e Mon Sep 17 00:00:00 2001
|
||||
From: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Date: Wed, 22 Jul 2020 16:02:58 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add support for MX31UF1GE4BC
|
||||
|
||||
The Macronix MX31UF1GE4BC is a 1.8V, 1Gbit (128MB) serial
|
||||
NAND flash device.
|
||||
|
||||
Validated by read, erase, read back, write and read back
|
||||
on Xilinx Zynq PicoZed FPGA board which included
|
||||
Macronix SPI Host (driver/spi/spi-mxic.c).
|
||||
|
||||
Signed-off-by: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1595404978-31079-3-git-send-email-ycllin@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index 9ae48ce1c46f91..8e801e4c3a006f 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -129,6 +129,16 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
0 /*SPINAND_HAS_QE_BIT*/,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX31UF1GE4BC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x9e),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0 /*SPINAND_HAS_QE_BIT*/,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
};
|
||||
|
||||
static const struct spinand_manufacturer_ops macronix_spinand_manuf_ops = {
|
@ -1,50 +0,0 @@
|
||||
From 5ece78de88739b4c68263e9f2582380c1fd8314f Mon Sep 17 00:00:00 2001
|
||||
From: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Date: Thu, 5 Nov 2020 15:23:40 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add support for MX35LFxGE4AD
|
||||
|
||||
The Macronix MX35LF2GE4AD / MX35LF4GE4AD are 3V, 2G / 4Gbit serial
|
||||
SLC NAND flash device (with on-die ECC).
|
||||
|
||||
Validated by read, erase, read back, write, read back and nandtest
|
||||
on Xilinx Zynq PicoZed FPGA board which included Macronix SPI Host
|
||||
(drivers/spi/spi-mxic.c).
|
||||
|
||||
Signed-off-by: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1604561020-13499-1-git-send-email-ycllin@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index 8e801e4c3a006f..3786b1b03b3b4b 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -119,6 +119,26 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
&update_cache_variants),
|
||||
SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX35LF2GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x26),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35LF4GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x37),
|
||||
+ NAND_MEMORG(1, 4096, 128, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
SPINAND_INFO("MX31LF1GE4BC",
|
||||
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
@ -1,58 +0,0 @@
|
||||
From ee4e0eafa43cfd9008722fe15e17b8bf62fb6e8d Mon Sep 17 00:00:00 2001
|
||||
From: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Date: Thu, 10 Dec 2020 11:22:09 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add support for MX35LFxG24AD
|
||||
|
||||
The Macronix MX35LF1G24AD(/2G24AD/4G24AD) are 3V, 1G/2G/4Gbit serial
|
||||
SLC NAND flash device (without on-die ECC).
|
||||
|
||||
Validated by read, erase, read back, write, read back on Xilinx Zynq
|
||||
PicoZed FPGA board which included Macronix SPI Host(drivers/spi/spi-mxic.c)
|
||||
& S/W BCH ecc(drivers/mtd/nand/ecc-sw-bch.c) with bug fixing patch
|
||||
(mtd: nand: ecc-bch: Fix the size of calc_buf/code_buf of the BCH).
|
||||
|
||||
Signed-off-by: YouChing Lin <ycllin@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1607570529-22341-3-git-send-email-ycllin@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 27 +++++++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index 3786b1b03b3b4b..6701aaa21a49df 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -139,6 +139,33 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
0,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35LF1G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x14),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX35LF2G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
+ SPINAND_INFO("MX35LF4G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35),
|
||||
+ NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ 0,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
SPINAND_INFO("MX31LF1GE4BC",
|
||||
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
|
||||
NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
@ -1,170 +0,0 @@
|
||||
From c374839f9b4475173e536d1eaddff45cb481dbdf Mon Sep 17 00:00:00 2001
|
||||
From: Jaime Liao <jaimeliao@mxic.com.tw>
|
||||
Date: Thu, 20 May 2021 09:45:08 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add support for serial NAND flash
|
||||
|
||||
Macronix NAND Flash devices are available in different configurations
|
||||
and densities.
|
||||
|
||||
MX"35" means SPI NAND
|
||||
MX35"LF"/"UF" , LF means 3V and UF meands 1.8V
|
||||
MX35LF"2G" , 2G means 2Gbits
|
||||
MX35LF2G"E4"/"24"/"14",
|
||||
E4 means internal ECC and Quad I/O(x4)
|
||||
24 means 8-bit ecc requirement and Quad I/O(x4)
|
||||
14 means 4-bit ecc requirement and Quad I/O(x4)
|
||||
|
||||
MX35LF2G14AC is 3V 2Gbit serial NAND flash device
|
||||
(without on-die ECC)
|
||||
https://www.mxic.com.tw/Lists/Datasheet/Attachments/7926/MX35LF2G14AC,%203V,%202Gb,%20v1.1.pdf
|
||||
|
||||
MX35UF4G24AD is 1.8V 4Gbit serial NAND flash device
|
||||
(without on-die ECC)
|
||||
https://www.mxic.com.tw/Lists/Datasheet/Attachments/7980/MX35UF4G24AD,%201.8V,%204Gb,%20v0.00.pdf
|
||||
|
||||
MX35UF4GE4AD/MX35UF2GE4AD are 1.8V 4G/2Gbit serial
|
||||
NAND flash device with 8-bit on-die ECC
|
||||
https://www.mxic.com.tw/Lists/Datasheet/Attachments/7983/MX35UF4GE4AD,%201.8V,%204Gb,%20v0.00.pdf
|
||||
|
||||
MX35UF2GE4AC/MX35UF1GE4AC are 1.8V 2G/1Gbit serial
|
||||
NAND flash device with 8-bit on-die ECC
|
||||
https://www.mxic.com.tw/Lists/Datasheet/Attachments/7974/MX35UF2GE4AC,%201.8V,%202Gb,%20v1.0.pdf
|
||||
|
||||
MX35UF2G14AC/MX35UF1G14AC are 1.8V 2G/1Gbit serial
|
||||
NAND flash device (without on-die ECC)
|
||||
https://www.mxic.com.tw/Lists/Datasheet/Attachments/7931/MX35UF2G14AC,%201.8V,%202Gb,%20v1.1.pdf
|
||||
|
||||
Validated via normal(default) and QUAD mode by read, erase, read back,
|
||||
on Xilinx Zynq PicoZed FPGA board which included Macronix
|
||||
SPI Host(drivers/spi/spi-mxic.c).
|
||||
|
||||
Signed-off-by: Jaime Liao <jaimeliao@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1621475108-22523-1-git-send-email-jaimeliao@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 112 ++++++++++++++++++++++++++++++++
|
||||
1 file changed, 112 insertions(+)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index 6701aaa21a49df..a9890350db0293 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -186,6 +186,118 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
0 /*SPINAND_HAS_QE_BIT*/,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
+
|
||||
+ SPINAND_INFO("MX35LF2G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x20),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(4, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF4G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb5),
|
||||
+ NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF4GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xb7),
|
||||
+ NAND_MEMORG(1, 4096, 256, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF2G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa0),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(4, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF2G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa4),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF2GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa6),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF2GE4AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xa2),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_ECCREQ(4, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF1G14AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x90),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(4, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF1G24AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x94),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF1GE4AD",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x96),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(8, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+ SPINAND_INFO("MX35UF1GE4AC",
|
||||
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x92),
|
||||
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
|
||||
+ NAND_ECCREQ(4, 512),
|
||||
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
+ &write_cache_variants,
|
||||
+ &update_cache_variants),
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
+ SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
+ mx35lf1ge4ab_ecc_get_status)),
|
||||
+
|
||||
};
|
||||
|
||||
static const struct spinand_manufacturer_ops macronix_spinand_manuf_ops = {
|
@ -1,88 +0,0 @@
|
||||
From 6f802696c2faf0119781fc3b7977a4eedf9ab239 Mon Sep 17 00:00:00 2001
|
||||
From: Jaime Liao <jaimeliao@mxic.com.tw>
|
||||
Date: Mon, 9 Aug 2021 09:27:52 +0800
|
||||
Subject: [PATCH] mtd: spinand: macronix: Add Quad support for serial NAND
|
||||
flash
|
||||
|
||||
Adding FLAG "SPINAND_HAS_QE_BIT" for Quad mode support on Macronix
|
||||
Serial Flash.
|
||||
Validated via normal(default) and QUAD mode by read, erase, read back,
|
||||
on Xilinx Zynq PicoZed FPGA board which included Macronix
|
||||
SPI Host(drivers/spi/spi-mxic.c).
|
||||
|
||||
Signed-off-by: Jaime Liao <jaimeliao@mxic.com.tw>
|
||||
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/linux-mtd/1628472472-32008-1-git-send-email-jaimeliao@mxic.com.tw
|
||||
---
|
||||
drivers/mtd/nand/spi/macronix.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/mtd/nand/spi/macronix.c b/drivers/mtd/nand/spi/macronix.c
|
||||
index a9890350db0293..3f31f1381a62c0 100644
|
||||
--- a/drivers/mtd/nand/spi/macronix.c
|
||||
+++ b/drivers/mtd/nand/spi/macronix.c
|
||||
@@ -126,7 +126,7 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
SPINAND_INFO("MX35LF4GE4AD",
|
||||
@@ -136,7 +136,7 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
SPINAND_INFO("MX35LF1G24AD",
|
||||
@@ -146,16 +146,16 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
SPINAND_INFO("MX35LF2G24AD",
|
||||
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x24),
|
||||
- NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
|
||||
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 2, 1, 1),
|
||||
NAND_ECCREQ(8, 512),
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
SPINAND_INFO("MX35LF4G24AD",
|
||||
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x35),
|
||||
@@ -164,7 +164,7 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout, NULL)),
|
||||
SPINAND_INFO("MX31LF1GE4BC",
|
||||
SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0x1e),
|
||||
@@ -173,7 +173,7 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0 /*SPINAND_HAS_QE_BIT*/,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
SPINAND_INFO("MX31UF1GE4BC",
|
||||
@@ -183,7 +183,7 @@ static const struct spinand_info macronix_spinand_table[] = {
|
||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
|
||||
&write_cache_variants,
|
||||
&update_cache_variants),
|
||||
- 0 /*SPINAND_HAS_QE_BIT*/,
|
||||
+ SPINAND_HAS_QE_BIT,
|
||||
SPINAND_ECCINFO(&mx35lfxge4ab_ooblayout,
|
||||
mx35lf1ge4ab_ecc_get_status)),
|
||||
|
@ -116,10 +116,10 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/net/bridge/br_fdb.c
|
||||
+++ b/net/bridge/br_fdb.c
|
||||
@@ -581,6 +581,7 @@ void br_fdb_update(struct net_bridge *br
|
||||
|
||||
@@ -589,6 +589,7 @@ void br_fdb_update(struct net_bridge *br
|
||||
/* fastpath: update of existing entry */
|
||||
if (unlikely(source != fdb->dst && !fdb->is_sticky)) {
|
||||
if (unlikely(source != fdb->dst &&
|
||||
!test_bit(BR_FDB_STICKY, &fdb->flags))) {
|
||||
+ br_switchdev_fdb_notify(fdb, RTM_DELNEIGH);
|
||||
fdb->dst = source;
|
||||
fdb_modified = true;
|
||||
|
@ -661,7 +661,7 @@ int wnd_init(struct wnd_bitmap *wnd, struct super_block *sb, size_t nbits)
|
||||
wnd->total_zeroes = nbits;
|
||||
wnd->extent_max = MINUS_ONE_T;
|
||||
wnd->zone_bit = wnd->zone_end = 0;
|
||||
wnd->nwnd = bytes_to_block(sb, bitmap_size(nbits));
|
||||
wnd->nwnd = bytes_to_block(sb, ntfs3_bitmap_size(nbits));
|
||||
wnd->bits_last = nbits & (wbits - 1);
|
||||
if (!wnd->bits_last)
|
||||
wnd->bits_last = wbits;
|
||||
@ -1323,7 +1323,7 @@ int wnd_extend(struct wnd_bitmap *wnd, size_t new_bits)
|
||||
return -EINVAL;
|
||||
|
||||
/* Align to 8 byte boundary. */
|
||||
new_wnd = bytes_to_block(sb, bitmap_size(new_bits));
|
||||
new_wnd = bytes_to_block(sb, ntfs3_bitmap_size(new_bits));
|
||||
new_last = new_bits & (wbits - 1);
|
||||
if (!new_last)
|
||||
new_last = wbits;
|
||||
|
@ -493,7 +493,7 @@ static int ntfs_extend_mft(struct ntfs_sb_info *sbi)
|
||||
ni->mi.dirty = true;
|
||||
|
||||
/* Step 2: Resize $MFT::BITMAP. */
|
||||
new_bitmap_bytes = bitmap_size(new_mft_total);
|
||||
new_bitmap_bytes = ntfs3_bitmap_size(new_mft_total);
|
||||
|
||||
err = attr_set_size(ni, ATTR_BITMAP, NULL, 0, &sbi->mft.bitmap.run,
|
||||
new_bitmap_bytes, &new_bitmap_bytes, true, NULL);
|
||||
|
@ -1360,7 +1360,7 @@ static int indx_create_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
|
||||
|
||||
alloc->nres.valid_size = alloc->nres.data_size = cpu_to_le64(data_size);
|
||||
|
||||
err = ni_insert_resident(ni, bitmap_size(1), ATTR_BITMAP, in->name,
|
||||
err = ni_insert_resident(ni, ntfs3_bitmap_size(1), ATTR_BITMAP, in->name,
|
||||
in->name_len, &bitmap, NULL, NULL);
|
||||
if (err)
|
||||
goto out2;
|
||||
@ -1422,7 +1422,7 @@ static int indx_add_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
|
||||
if (bmp) {
|
||||
/* Increase bitmap. */
|
||||
err = attr_set_size(ni, ATTR_BITMAP, in->name, in->name_len,
|
||||
&indx->bitmap_run, bitmap_size(bit + 1),
|
||||
&indx->bitmap_run, ntfs3_bitmap_size(bit + 1),
|
||||
NULL, true, NULL);
|
||||
if (err)
|
||||
goto out1;
|
||||
@ -1980,7 +1980,7 @@ static int indx_shrink(struct ntfs_index *indx, struct ntfs_inode *ni,
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
bpb = bitmap_size(bit);
|
||||
bpb = ntfs3_bitmap_size(bit);
|
||||
if (bpb * 8 == nbits)
|
||||
return 0;
|
||||
|
||||
|
@ -943,7 +943,7 @@ static inline bool run_is_empty(struct runs_tree *run)
|
||||
}
|
||||
|
||||
/* NTFS uses quad aligned bitmaps. */
|
||||
static inline size_t bitmap_size(size_t bits)
|
||||
static inline size_t ntfs3_bitmap_size(size_t bits)
|
||||
{
|
||||
return ALIGN((bits + 7) >> 3, 8);
|
||||
}
|
||||
|
@ -1100,7 +1100,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
|
||||
|
||||
/* Check bitmap boundary. */
|
||||
tt = sbi->used.bitmap.nbits;
|
||||
if (inode->i_size < bitmap_size(tt)) {
|
||||
if (inode->i_size < ntfs3_bitmap_size(tt)) {
|
||||
err = -EINVAL;
|
||||
goto put_inode_out;
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
--- a/net/ethernet/eth.c
|
||||
+++ b/net/ethernet/eth.c
|
||||
@@ -164,7 +164,17 @@ __be16 eth_type_trans(struct sk_buff *sk
|
||||
eth = (struct ethhdr *)skb->data;
|
||||
skb_pull_inline(skb, ETH_HLEN);
|
||||
|
||||
- eth_skb_pkt_type(skb, dev);
|
||||
+ if (unlikely(!ether_addr_equal_64bits(eth->h_dest,
|
||||
+ dev->dev_addr))) {
|
||||
+ if (unlikely(is_multicast_ether_addr_64bits(eth->h_dest))) {
|
||||
+ if (ether_addr_equal_64bits(eth->h_dest, dev->broadcast))
|
||||
+ skb->pkt_type = PACKET_BROADCAST;
|
||||
+ else
|
||||
+ skb->pkt_type = PACKET_MULTICAST;
|
||||
+ } else {
|
||||
+ skb->pkt_type = PACKET_OTHERHOST;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Some variants of DSA tagging don't have an ethertype field
|
@ -15,7 +15,7 @@ Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
|
||||
--- a/net/bridge/br_switchdev.c
|
||||
+++ b/net/bridge/br_switchdev.c
|
||||
@@ -102,42 +102,27 @@ int br_switchdev_set_port_flag(struct ne
|
||||
@@ -102,44 +102,27 @@ int br_switchdev_set_port_flag(struct ne
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
+ struct switchdev_notifier_fdb_info info = {
|
||||
+ .addr = fdb->key.addr.addr,
|
||||
+ .vid = fdb->key.vlan_id,
|
||||
+ .added_by_user = fdb->added_by_user,
|
||||
+ .added_by_user = test_bit(BR_FDB_ADDED_BY_USER, &fdb->flags),
|
||||
+ .offloaded = fdb->offloaded,
|
||||
+ };
|
||||
+
|
||||
@ -53,7 +53,8 @@ Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
- br_switchdev_fdb_call_notifiers(false, fdb->key.addr.addr,
|
||||
- fdb->key.vlan_id,
|
||||
- fdb->dst->dev,
|
||||
- fdb->added_by_user,
|
||||
- test_bit(BR_FDB_ADDED_BY_USER,
|
||||
- &fdb->flags),
|
||||
- fdb->offloaded);
|
||||
+ call_switchdev_notifiers(SWITCHDEV_FDB_DEL_TO_DEVICE,
|
||||
+ fdb->dst->dev, &info.info, NULL);
|
||||
@ -62,7 +63,8 @@ Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
|
||||
- br_switchdev_fdb_call_notifiers(true, fdb->key.addr.addr,
|
||||
- fdb->key.vlan_id,
|
||||
- fdb->dst->dev,
|
||||
- fdb->added_by_user,
|
||||
- test_bit(BR_FDB_ADDED_BY_USER,
|
||||
- &fdb->flags),
|
||||
- fdb->offloaded);
|
||||
+ call_switchdev_notifiers(SWITCHDEV_FDB_ADD_TO_DEVICE,
|
||||
+ fdb->dst->dev, &info.info, NULL);
|
||||
|
@ -35,8 +35,8 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
@@ -109,6 +109,7 @@ br_switchdev_fdb_notify(const struct net
|
||||
.addr = fdb->key.addr.addr,
|
||||
.vid = fdb->key.vlan_id,
|
||||
.added_by_user = fdb->added_by_user,
|
||||
+ .local = fdb->is_local,
|
||||
.added_by_user = test_bit(BR_FDB_ADDED_BY_USER, &fdb->flags),
|
||||
+ .local = test_bit(BR_FDB_LOCAL, &fdb->flags),
|
||||
.offloaded = fdb->offloaded,
|
||||
};
|
||||
|
||||
|
@ -17,16 +17,16 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/net/bridge/br_fdb.c
|
||||
+++ b/net/bridge/br_fdb.c
|
||||
@@ -581,7 +581,7 @@ void br_fdb_update(struct net_bridge *br
|
||||
|
||||
@@ -589,7 +589,7 @@ void br_fdb_update(struct net_bridge *br
|
||||
/* fastpath: update of existing entry */
|
||||
if (unlikely(source != fdb->dst && !fdb->is_sticky)) {
|
||||
if (unlikely(source != fdb->dst &&
|
||||
!test_bit(BR_FDB_STICKY, &fdb->flags))) {
|
||||
- br_switchdev_fdb_notify(fdb, RTM_DELNEIGH);
|
||||
+ br_switchdev_fdb_notify(br, fdb, RTM_DELNEIGH);
|
||||
fdb->dst = source;
|
||||
fdb_modified = true;
|
||||
/* Take over HW learned entry */
|
||||
@@ -697,7 +697,7 @@ static void fdb_notify(struct net_bridge
|
||||
@@ -705,7 +705,7 @@ static void fdb_notify(struct net_bridge
|
||||
int err = -ENOBUFS;
|
||||
|
||||
if (swdev_notify)
|
||||
@ -37,7 +37,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
if (skb == NULL)
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -1203,8 +1203,8 @@ bool nbp_switchdev_allowed_egress(const
|
||||
@@ -1208,8 +1208,8 @@ bool nbp_switchdev_allowed_egress(const
|
||||
int br_switchdev_set_port_flag(struct net_bridge_port *p,
|
||||
unsigned long flags,
|
||||
unsigned long mask);
|
||||
@ -48,7 +48,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
int br_switchdev_port_vlan_add(struct net_device *dev, u16 vid, u16 flags,
|
||||
struct netlink_ext_ack *extack);
|
||||
int br_switchdev_port_vlan_del(struct net_device *dev, u16 vid);
|
||||
@@ -1250,7 +1250,8 @@ static inline int br_switchdev_port_vlan
|
||||
@@ -1255,7 +1255,8 @@ static inline int br_switchdev_port_vlan
|
||||
}
|
||||
|
||||
static inline void
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
struct switchdev_notifier_fdb_info info = {
|
||||
.addr = fdb->key.addr.addr,
|
||||
@@ -112,18 +113,16 @@ br_switchdev_fdb_notify(const struct net
|
||||
.local = fdb->is_local,
|
||||
.local = test_bit(BR_FDB_LOCAL, &fdb->flags),
|
||||
.offloaded = fdb->offloaded,
|
||||
};
|
||||
-
|
||||
|
@ -1,12 +0,0 @@
|
||||
--- a/drivers/net/macsec.c
|
||||
+++ b/drivers/net/macsec.c
|
||||
@@ -1309,8 +1309,7 @@
|
||||
struct crypto_aead *tfm;
|
||||
int ret;
|
||||
|
||||
- /* Pick a sync gcm(aes) cipher to ensure order is preserved. */
|
||||
- tfm = crypto_alloc_aead("gcm(aes)", 0, CRYPTO_ALG_ASYNC);
|
||||
+ tfm = crypto_alloc_aead("gcm(aes)", 0, 0);
|
||||
|
||||
if (IS_ERR(tfm))
|
||||
return tfm;
|
@ -1,8 +1,6 @@
|
||||
diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
|
||||
index 2a54fa7a3..132b3204c 100644
|
||||
--- a/drivers/pci/controller/pcie-mediatek.c
|
||||
+++ b/drivers/pci/controller/pcie-mediatek.c
|
||||
@@ -446,24 +446,24 @@ static int mtk_pcie_irq_domain_alloc(struct irq_domain *domain, unsigned int vir
|
||||
@@ -440,24 +440,24 @@ static int mtk_pcie_irq_domain_alloc(str
|
||||
unsigned int nr_irqs, void *args)
|
||||
{
|
||||
struct mtk_pcie_port *port = domain->host_data;
|
||||
@ -36,7 +34,7 @@ index 2a54fa7a3..132b3204c 100644
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -501,7 +501,7 @@ static struct irq_chip mtk_msi_irq_chip = {
|
||||
@@ -495,7 +495,7 @@ static struct irq_chip mtk_msi_irq_chip
|
||||
|
||||
static struct msi_domain_info mtk_msi_domain_info = {
|
||||
.flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
|
||||
@ -45,20 +43,3 @@ index 2a54fa7a3..132b3204c 100644
|
||||
.chip = &mtk_msi_irq_chip,
|
||||
};
|
||||
|
||||
@@ -633,14 +633,14 @@ static void mtk_pcie_intr_handler(struct irq_desc *desc)
|
||||
if (status & MSI_STATUS){
|
||||
unsigned long imsi_status;
|
||||
|
||||
+ /* Clear MSI interrupt status */
|
||||
+ writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
|
||||
while ((imsi_status = readl(port->base + PCIE_IMSI_STATUS))) {
|
||||
for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM) {
|
||||
virq = irq_find_mapping(port->inner_domain, bit);
|
||||
generic_handle_irq(virq);
|
||||
}
|
||||
}
|
||||
- /* Clear MSI interrupt status */
|
||||
- writel(MSI_STATUS, port->base + PCIE_INT_STATUS);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user