Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.75 Removed upstream: bcm27xx/patches-6.12/950-0225-media-i2c-ov5647-Correct-pixel-array-offset.patch[1] bcm27xx/patches-6.12/950-0226-media-i2c-ov5647-Correct-minimum-VBLANK-value.patch[2] bcm27xx/patches-6.12/950-0248-media-i2c-ov5647-Sensor-should-report-RAW-color-spac.patch[3] qualcommax/patches-6.12/0074-v6.20-clk-qcom-gcc-ipq5018-flag-sleep-clock-as-critical.patch[4] Manually rebased: bcm27xx/patches-6.12/950-0262-mfd-simple-mfd-i2c-Add-configuration-for-RPi-POE-HAT.patch bcm27xx/patches-6.12/950-0071-drivers-mfd-sensehat-Add-Raspberry-Pi-Sense-HAT-to-s.patch bcm27xx/patches-6.12/950-0516-media-i2c-ov5647-Add-V4L2_CID_LINK_FREQUENCY-control.patch lantiq/patches-6.12/101-find_active_root.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=58f1767ad5c9eda3dd0befddc1843259d46d64fa 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=ff65571ffae52b65577121e7696bf22156e1928a 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=fbf2a108ed5eb1c896d3f354bd05314c2e22e78f 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.75&id=b109dd4970a0fc89d54b1198b163f86125dd2977 Build system: x86/64 Build-tested: flogic/glinet_gl-mt6000 Run-tested: flogic/glinet_gl-mt6000 Co-authored-by: Shiji Yang <yangshiji66@outlook.com> Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/22276 Signed-off-by: Robert Marko <robimarko@gmail.com>
64 lines
2.3 KiB
Diff
64 lines
2.3 KiB
Diff
From e4a0cf9f1d90e6888e5373da3314f761024f6c97 Mon Sep 17 00:00:00 2001
|
|
From: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
|
|
Date: Thu, 18 Sep 2025 00:53:59 +0300
|
|
Subject: mtd: spinand: fix direct mapping creation sizes
|
|
|
|
Continuous mode is only supported for data reads, thus writing
|
|
requires only single flash page mapping.
|
|
|
|
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
|
|
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
|
---
|
|
drivers/mtd/nand/spi/core.c | 14 +++++++-------
|
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
--- a/drivers/mtd/nand/spi/core.c
|
|
+++ b/drivers/mtd/nand/spi/core.c
|
|
@@ -1036,18 +1036,13 @@ static int spinand_create_dirmap(struct
|
|
unsigned int plane)
|
|
{
|
|
struct nand_device *nand = spinand_to_nand(spinand);
|
|
- struct spi_mem_dirmap_info info = {
|
|
- .length = nanddev_page_size(nand) +
|
|
- nanddev_per_page_oobsize(nand),
|
|
- };
|
|
+ struct spi_mem_dirmap_info info = { 0 };
|
|
struct spi_mem_dirmap_desc *desc;
|
|
|
|
- if (spinand->cont_read_possible)
|
|
- info.length = nanddev_eraseblock_size(nand);
|
|
-
|
|
/* The plane number is passed in MSB just above the column address */
|
|
info.offset = plane << fls(nand->memorg.pagesize);
|
|
|
|
+ info.length = nanddev_page_size(nand) + nanddev_per_page_oobsize(nand);
|
|
info.op_tmpl = *spinand->op_templates.update_cache;
|
|
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
|
spinand->spimem, &info);
|
|
@@ -1056,6 +1051,8 @@ static int spinand_create_dirmap(struct
|
|
|
|
spinand->dirmaps[plane].wdesc = desc;
|
|
|
|
+ if (spinand->cont_read_possible)
|
|
+ info.length = nanddev_eraseblock_size(nand);
|
|
info.op_tmpl = *spinand->op_templates.read_cache;
|
|
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
|
spinand->spimem, &info);
|
|
@@ -1071,6 +1068,7 @@ static int spinand_create_dirmap(struct
|
|
return 0;
|
|
}
|
|
|
|
+ info.length = nanddev_page_size(nand) + nanddev_per_page_oobsize(nand);
|
|
info.op_tmpl = *spinand->op_templates.update_cache;
|
|
info.op_tmpl.data.ecc = true;
|
|
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|
|
@@ -1080,6 +1078,8 @@ static int spinand_create_dirmap(struct
|
|
|
|
spinand->dirmaps[plane].wdesc_ecc = desc;
|
|
|
|
+ if (spinand->cont_read_possible)
|
|
+ info.length = nanddev_eraseblock_size(nand);
|
|
info.op_tmpl = *spinand->op_templates.read_cache;
|
|
info.op_tmpl.data.ecc = true;
|
|
desc = devm_spi_mem_dirmap_create(&spinand->spimem->spi->dev,
|