From: Tudor Ambarus <tudor.ambarus@linaro.org> To: tkuw584924@gmail.com, takahiro.kuwano@infineon.com, michael@walle.cc Cc: pratyush@kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, bacem.daassi@infineon.com, miquel.raynal@bootlin.com, richard@nod.at, Takahiro Kuwano <Takahiro.Kuwano@infineon.com>, stable@vger.kernel.org Subject: [PATCH v4 02/11] mtd: spi-nor: spansion: preserve CFR2V[7] when writing MEMLAT Date: Wed, 26 Jul 2023 10:52:48 +0300 [thread overview] Message-ID: <20230726075257.12985-3-tudor.ambarus@linaro.org> (raw) In-Reply-To: <20230726075257.12985-1-tudor.ambarus@linaro.org> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com> CFR2V[7] is assigned to Flash's address mode (3- or 4-ybte) and must not be changed when writing MEMLAT (CFR2V[3:0]). CFR2V shall be used in a read, update, write back fashion. Fixes: c3266af101f2 ("mtd: spi-nor: spansion: add support for Cypress Semper flash") Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com> Cc: stable@vger.kernel.org --- drivers/mtd/spi-nor/spansion.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index 6b2532ed053c..6460d2247bdf 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -4,6 +4,7 @@ * Copyright (C) 2014, Freescale Semiconductor, Inc. */ +#include <linux/bitfield.h> #include <linux/device.h> #include <linux/mtd/spi-nor.h> @@ -28,6 +29,7 @@ #define SPINOR_REG_CYPRESS_CFR2 0x3 #define SPINOR_REG_CYPRESS_CFR2V \ (SPINOR_REG_CYPRESS_VREG + SPINOR_REG_CYPRESS_CFR2) +#define SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK GENMASK(3, 0) #define SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24 0xb #define SPINOR_REG_CYPRESS_CFR2_ADRBYT BIT(7) #define SPINOR_REG_CYPRESS_CFR3 0x4 @@ -161,8 +163,18 @@ static int cypress_nor_octal_dtr_en(struct spi_nor *nor) int ret; u8 addr_mode_nbytes = nor->params->addr_mode_nbytes; + op = (struct spi_mem_op) + CYPRESS_NOR_RD_ANY_REG_OP(addr_mode_nbytes, + SPINOR_REG_CYPRESS_CFR2V, 0, buf); + + ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto); + if (ret) + return ret; + /* Use 24 dummy cycles for memory array reads. */ - *buf = SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24; + *buf &= ~SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK; + *buf |= FIELD_PREP(SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK, + SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24); op = (struct spi_mem_op) CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, SPINOR_REG_CYPRESS_CFR2V, 1, buf); -- 2.34.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Tudor Ambarus <tudor.ambarus@linaro.org> To: tkuw584924@gmail.com, takahiro.kuwano@infineon.com, michael@walle.cc Cc: pratyush@kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, bacem.daassi@infineon.com, miquel.raynal@bootlin.com, richard@nod.at, Takahiro Kuwano <Takahiro.Kuwano@infineon.com>, stable@vger.kernel.org Subject: [PATCH v4 02/11] mtd: spi-nor: spansion: preserve CFR2V[7] when writing MEMLAT Date: Wed, 26 Jul 2023 10:52:48 +0300 [thread overview] Message-ID: <20230726075257.12985-3-tudor.ambarus@linaro.org> (raw) In-Reply-To: <20230726075257.12985-1-tudor.ambarus@linaro.org> From: Takahiro Kuwano <Takahiro.Kuwano@infineon.com> CFR2V[7] is assigned to Flash's address mode (3- or 4-ybte) and must not be changed when writing MEMLAT (CFR2V[3:0]). CFR2V shall be used in a read, update, write back fashion. Fixes: c3266af101f2 ("mtd: spi-nor: spansion: add support for Cypress Semper flash") Signed-off-by: Takahiro Kuwano <Takahiro.Kuwano@infineon.com> Cc: stable@vger.kernel.org --- drivers/mtd/spi-nor/spansion.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index 6b2532ed053c..6460d2247bdf 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -4,6 +4,7 @@ * Copyright (C) 2014, Freescale Semiconductor, Inc. */ +#include <linux/bitfield.h> #include <linux/device.h> #include <linux/mtd/spi-nor.h> @@ -28,6 +29,7 @@ #define SPINOR_REG_CYPRESS_CFR2 0x3 #define SPINOR_REG_CYPRESS_CFR2V \ (SPINOR_REG_CYPRESS_VREG + SPINOR_REG_CYPRESS_CFR2) +#define SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK GENMASK(3, 0) #define SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24 0xb #define SPINOR_REG_CYPRESS_CFR2_ADRBYT BIT(7) #define SPINOR_REG_CYPRESS_CFR3 0x4 @@ -161,8 +163,18 @@ static int cypress_nor_octal_dtr_en(struct spi_nor *nor) int ret; u8 addr_mode_nbytes = nor->params->addr_mode_nbytes; + op = (struct spi_mem_op) + CYPRESS_NOR_RD_ANY_REG_OP(addr_mode_nbytes, + SPINOR_REG_CYPRESS_CFR2V, 0, buf); + + ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto); + if (ret) + return ret; + /* Use 24 dummy cycles for memory array reads. */ - *buf = SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24; + *buf &= ~SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK; + *buf |= FIELD_PREP(SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK, + SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24); op = (struct spi_mem_op) CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, SPINOR_REG_CYPRESS_CFR2V, 1, buf); -- 2.34.1
next prev parent reply other threads:[~2023-07-26 7:53 UTC|newest] Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-07-26 7:52 [PATCH v4 00/11] mtd: spi-nor: spansion: Add support for Infineon S28HS02GT Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 01/11] mtd: spi-nor: spansion: use CLPEF as an alternative to CLSR Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus [this message] 2023-07-26 7:52 ` [PATCH v4 02/11] mtd: spi-nor: spansion: preserve CFR2V[7] when writing MEMLAT Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 03/11] mtd: spi-nor: spansion: prepare octal dtr methods for multi chip support Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 04/11] mtd: spi-nor: spansion: switch set_octal_dtr method to use vreg_offset Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 05/11] mtd: spi-nor: spansion: switch h28hx's ready() " Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 06/11] mtd: spi-nor: spansion: add MCP support in set_octal_dtr() Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 07/11] mtd: spi-nor: spansion: add octal DTR support in RD_ANY_REG_OP Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 08/11] mtd: spi-nor: spansion: add support for S28HS02GT Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 7:52 ` [PATCH v4 09/11] mtd: spi-nor: spansion: let SFDP determine the flash and sector size Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 9:37 ` Takahiro Kuwano 2023-07-26 9:37 ` Takahiro Kuwano 2023-07-26 7:52 ` [PATCH v4 10/11] mtd: spi-nor: spansion: switch s25hx_t to use vreg_offset for quad_enable() Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 9:36 ` Takahiro Kuwano 2023-07-26 9:36 ` Takahiro Kuwano 2023-07-26 7:52 ` [PATCH v4 11/11] mtd: spi-nor: spansion: switch cypress_nor_get_page_size() to use vreg_offset Tudor Ambarus 2023-07-26 7:52 ` Tudor Ambarus 2023-07-26 9:34 ` Takahiro Kuwano 2023-07-26 9:34 ` Takahiro Kuwano 2023-07-26 9:41 ` [PATCH v4 00/11] mtd: spi-nor: spansion: Add support for Infineon S28HS02GT Tudor Ambarus 2023-07-26 9:41 ` Tudor Ambarus
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230726075257.12985-3-tudor.ambarus@linaro.org \ --to=tudor.ambarus@linaro.org \ --cc=bacem.daassi@infineon.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=michael@walle.cc \ --cc=miquel.raynal@bootlin.com \ --cc=pratyush@kernel.org \ --cc=richard@nod.at \ --cc=stable@vger.kernel.org \ --cc=takahiro.kuwano@infineon.com \ --cc=tkuw584924@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.