openbmc.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Potin Lai <potin.lai@quantatw.com>
To: openbmc@lists.ozlabs.org, joel@jms.id.au
Cc: Tudor Ambarus <tudor.ambarus@microchip.com>
Subject: [PATCH linux dev-5.15 19/26] mtd: spi-nor: Introduce spi_nor_init_fixup_flags()
Date: Fri, 25 Feb 2022 10:42:14 +0800	[thread overview]
Message-ID: <20220225024221.19422-20-potin.lai@quantatw.com> (raw)
In-Reply-To: <20220225024221.19422-1-potin.lai@quantatw.com>

From: Tudor Ambarus <tudor.ambarus@microchip.com>

Group NOR flags initialization. Introduce a dedicated function for
setting the fixup_flags and emphasise when those flash_info flags
should be set: when the SNOR_F_4B_OPCODES/SNOR_F_IO_MODE_EN_VOLATILE
setttings can not be discovered by SFDP for this particular flash
because the SFDP table that indicates this support is not defined
in the flash.
In case the table for his support is defined but has wrong values,
one should instead use a post_sfdp() hook to set the SNOR_F equivalent
flag.

No functional change intended in this patch.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
Link: https://lore.kernel.org/r/20211207140254.87681-9-tudor.ambarus@microchip.com
---
 drivers/mtd/spi-nor/core.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index 1ac7e8de4b8e..86bbd1ca22fc 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2692,6 +2692,25 @@ static void spi_nor_init_flags(struct spi_nor *nor)
 		nor->flags |=  SNOR_F_READY_XSR_RDY;
 }
 
+/**
+ * spi_nor_init_fixup_flags() - Initialize NOR flags for settings that can not
+ * be discovered by SFDP for this particular flash because the SFDP table that
+ * indicates this support is not defined in the flash. In case the table for
+ * this support is defined but has wrong values, one should instead use a
+ * post_sfdp() hook to set the SNOR_F equivalent flag.
+ * @nor:       pointer to a 'struct spi_nor'
+ */
+static void spi_nor_init_fixup_flags(struct spi_nor *nor)
+{
+	const u8 fixup_flags = nor->info->fixup_flags;
+
+	if (fixup_flags & SPI_NOR_4B_OPCODES)
+		nor->flags |= SNOR_F_4B_OPCODES;
+
+	if (fixup_flags & SPI_NOR_IO_MODE_EN_VOLATILE)
+		nor->flags |= SNOR_F_IO_MODE_EN_VOLATILE;
+}
+
 /**
  * spi_nor_late_init_params() - Late initialization of default flash parameters.
  * @nor:	pointer to a 'struct spi_nor'
@@ -2710,6 +2729,7 @@ static void spi_nor_late_init_params(struct spi_nor *nor)
 		nor->info->fixups->late_init(nor);
 
 	spi_nor_init_flags(nor);
+	spi_nor_init_fixup_flags(nor);
 
 	/*
 	 * NOR protection support. When locking_ops are not provided, we pick
@@ -3147,7 +3167,6 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
 	struct mtd_info *mtd = &nor->mtd;
 	int ret;
 	int i;
-	u8 fixup_flags;
 
 	ret = spi_nor_check(nor);
 	if (ret)
@@ -3197,13 +3216,6 @@ int spi_nor_scan(struct spi_nor *nor, const char *name,
 	if (ret)
 		return ret;
 
-	fixup_flags = info->fixup_flags;
-	if (fixup_flags & SPI_NOR_4B_OPCODES)
-		nor->flags |= SNOR_F_4B_OPCODES;
-
-	if (fixup_flags & SPI_NOR_IO_MODE_EN_VOLATILE)
-		nor->flags |= SNOR_F_IO_MODE_EN_VOLATILE;
-
 	ret = spi_nor_set_addr_width(nor);
 	if (ret)
 		return ret;
-- 
2.17.1


  parent reply	other threads:[~2022-02-25  2:55 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-25  2:41 [PATCH linux dev-5.15 00/26] Add w25q01jvq and convert flash_info format Potin Lai
2022-02-25  2:41 ` [PATCH linux dev-5.15 01/26] mtd: spi-nor: Enable locking for n25q128a13 Potin Lai
2022-02-25  2:41 ` [PATCH linux dev-5.15 02/26] mtd: spi-nor: core: Fix spi_nor_flash_parameter otp description Potin Lai
2022-02-25  2:41 ` [PATCH linux dev-5.15 03/26] mtd: spi-nor: core: Use container_of to get the pointer to struct spi_nor Potin Lai
2022-02-25  2:41 ` [PATCH linux dev-5.15 04/26] mtd: spi-nor: Get rid of nor->page_size Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 05/26] mtd: spi-nor: core: Introduce the late_init() hook Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 06/26] mtd: spi-nor: atmel: Use flash late_init() for locking Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 07/26] mtd: spi-nor: sst: " Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 08/26] mtd: spi-nor: winbond: Use manufacturer late_init() for OTP ops Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 09/26] mtd: spi-nor: xilinx: Use manufacturer late_init() to set setup method Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 10/26] mtd: spi-nor: sst: Use manufacturer late_init() to set _write() Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 11/26] mtd: spi-nor: spansion: Use manufacturer late_init() Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 12/26] mtd: spi-nor: Fix mtd size for s3an flashes Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 13/26] mtd: spi-nor: core: Don't use mtd_info in the NOR's probe sequence of calls Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 14/26] mtd: spi-nor: Introduce spi_nor_set_mtd_info() Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 15/26] mtd: spi-nor: core: Call spi_nor_post_sfdp_fixups() only when SFDP is defined Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 16/26] mtd: spi-nor: core: Introduce flash_info mfr_flags Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 17/26] mtd: spi-nor: Rework the flash_info flags Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 18/26] mtd: spi-nor: Introduce spi_nor_init_flags() Potin Lai
2022-02-25  2:42 ` Potin Lai [this message]
2022-02-25  2:42 ` [PATCH linux dev-5.15 20/26] mtd: spi-nor: core: Init all flash parameters based on SFDP where possible Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 21/26] mtd: spi-nor: core: Move spi_nor_set_addr_width() in spi_nor_setup() Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 22/26] mtd: spi-nor: winbond: w25q256jvm: Init flash based on SFDP Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 23/26] mtd: spi-nor: spansion: s25fl256s0: Skip SFDP parsing Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 24/26] mtd: spi-nor: gigadevice: gd25q256: Init flash based on SFDP Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 25/26] mtd: spi-nor: issi: is25lp256: " Potin Lai
2022-02-25  2:42 ` [PATCH linux dev-5.15 26/26] mtd: spi-nor: winbond: Add support for w25q01jvq Potin Lai
2022-02-25  4:01 ` [PATCH linux dev-5.15 00/26] Add w25q01jvq and convert flash_info format Joel Stanley
2022-02-25  4:19   ` Potin Lai (賴柏廷)
2022-02-25  4:24     ` Joel Stanley

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=20220225024221.19422-20-potin.lai@quantatw.com \
    --to=potin.lai@quantatw.com \
    --cc=joel@jms.id.au \
    --cc=openbmc@lists.ozlabs.org \
    --cc=tudor.ambarus@microchip.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).