Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.33 Removed upstreamed: generic/backport-6.18/742-v7.1-r8152-fix-incorrect-register-write-to-USB_UPHY_XTAL.patch[1] generic/backport-6.18/827-v7.0-crypto-inside-secure-eip93-fix-register-definition.patch[2] generic/backport-6.18/828-v7.0-crypto-inside-secure-eip93-register-hash-before-auth.patch[3] generic/backport-6.18/940-v7.1-net-dsa-realtek-rtl8365mb-fix-mode-mask-calculation.patch[4] generic/pending-6.18/928-crypto-eip93-fix-hmac-setkey-algo-selection.patch[5] All other patches automatically rebased via update_kernel.sh 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=50c601805fe3 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=7ed07c9ce525 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b6263eb2b188 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=b707f3109f1a 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.18.33&id=fc9310d79fdb Build system: x86/64 Build-tested: x86/64-glibc Run-tested: x86/64-glibc Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/23419 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
58 lines
1.6 KiB
Diff
58 lines
1.6 KiB
Diff
From 7ec7de94c87654e6cc3f8f604b2f65c003f3e5dc Mon Sep 17 00:00:00 2001
|
|
From: "SkyLake.Huang" <skylake.huang@mediatek.com>
|
|
Date: Thu, 23 Jun 2022 18:40:59 +0800
|
|
Subject: [PATCH 6/6] drivers: mtd: spi-nor: Add calibration support for
|
|
spi-nor
|
|
|
|
Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
|
|
---
|
|
drivers/mtd/nand/spi/core.c | 5 ++++-
|
|
drivers/mtd/spi-nor/core.c | 15 +++++++++++++++
|
|
2 files changed, 19 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/mtd/nand/spi/core.c
|
|
+++ b/drivers/mtd/nand/spi/core.c
|
|
@@ -1311,7 +1311,10 @@ static int spinand_cal_read(void *priv,
|
|
if (ret)
|
|
return ret;
|
|
|
|
- ret = spinand_wait(spinand, &status);
|
|
+ ret = spinand_wait(spinand,
|
|
+ SPINAND_READ_INITIAL_DELAY_US,
|
|
+ SPINAND_READ_POLL_DELAY_US,
|
|
+ &status);
|
|
if (ret < 0)
|
|
return ret;
|
|
|
|
--- a/drivers/mtd/spi-nor/core.c
|
|
+++ b/drivers/mtd/spi-nor/core.c
|
|
@@ -3418,6 +3418,18 @@ static const struct flash_info *spi_nor_
|
|
return NULL;
|
|
}
|
|
|
|
+static int spi_nor_cal_read(void *priv, u32 *addr, int addrlen, u8 *buf, int readlen)
|
|
+{
|
|
+ struct spi_nor *nor = (struct spi_nor *)priv;
|
|
+
|
|
+ nor->reg_proto = SNOR_PROTO_1_1_1;
|
|
+ nor->read_proto = SNOR_PROTO_1_1_1;
|
|
+ nor->read_opcode = SPINOR_OP_READ;
|
|
+ nor->read_dummy = 0;
|
|
+
|
|
+ return nor->controller_ops->read(nor, *addr, readlen, buf);
|
|
+}
|
|
+
|
|
static const struct flash_info *spi_nor_get_flash_info(struct spi_nor *nor,
|
|
const char *name)
|
|
{
|
|
@@ -3592,6 +3604,9 @@ int spi_nor_scan(struct spi_nor *nor, co
|
|
if (ret)
|
|
return ret;
|
|
|
|
+ if(nor->spimem)
|
|
+ spi_mem_do_calibration(nor->spimem, spi_nor_cal_read, nor);
|
|
+
|
|
info = spi_nor_get_flash_info(nor, name);
|
|
if (IS_ERR(info))
|
|
return PTR_ERR(info);
|