[PATCH 1/3] mtd: spi-nor: don't guard stm_*lock* family by preprocessor conditionals
Rasmus Villemoes
rasmus.villemoes at prevas.dk
Thu Mar 26 12:42:55 CET 2020
Use C instead of cpp to choose whether the stm_lock and friends get
compiled in. This provides better compile testing and reduces the
amount of #ifdeffery. All of the previously guarded functions are
static, so this does not add anything to the binary in the
!(SPI_FLASH_STMICRO or SPI_FLASH_SST) case (and even if they were not
static, the linker would eventually remove them).
The test of SPI_FLASH_STMICRO or SPI_FLASH_SST is done inside the test
for specific manufacturers or SPI_NOR_HAS_LOCK in flags, to prepare
for adding support for locking on Macronix flashes. The compiler is
perfectly capabable of compiling
if (expression with no side effects) {
if (0) {
}
}
to nothing at all.
Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
---
drivers/mtd/spi/spi-nor-core.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index 7b6ad495ac..af83d813fc 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -591,7 +591,6 @@ erase_err:
return ret;
}
-#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
/* Write status register and ensure bits in mask match written values */
static int write_sr_and_check(struct spi_nor *nor, u8 status_new, u8 mask)
{
@@ -877,7 +876,6 @@ static int stm_is_locked(struct spi_nor *nor, loff_t ofs, uint64_t len)
return stm_is_locked_sr(nor, ofs, len, status);
}
-#endif /* CONFIG_SPI_FLASH_STMICRO */
static const struct flash_info *spi_nor_read_id(struct spi_nor *nor)
{
@@ -2528,17 +2526,17 @@ int spi_nor_scan(struct spi_nor *nor)
mtd->_erase = spi_nor_erase;
mtd->_read = spi_nor_read;
-#if defined(CONFIG_SPI_FLASH_STMICRO) || defined(CONFIG_SPI_FLASH_SST)
/* NOR protection support for STmicro/Micron chips and similar */
if (JEDEC_MFR(info) == SNOR_MFR_ST ||
JEDEC_MFR(info) == SNOR_MFR_MICRON ||
JEDEC_MFR(info) == SNOR_MFR_SST ||
info->flags & SPI_NOR_HAS_LOCK) {
- nor->flash_lock = stm_lock;
- nor->flash_unlock = stm_unlock;
- nor->flash_is_locked = stm_is_locked;
+ if (IS_ENABLED(CONFIG_SPI_FLASH_STMICRO) || IS_ENABLED(CONFIG_SPI_FLASH_SST)) {
+ nor->flash_lock = stm_lock;
+ nor->flash_unlock = stm_unlock;
+ nor->flash_is_locked = stm_is_locked;
+ }
}
-#endif
#ifdef CONFIG_SPI_FLASH_SST
/*
--
2.23.0
More information about the U-Boot
mailing list