This reverts commit c480ec2c45b221b2044c6268c9773e78fa47f305.

Signed-off-by: Marek Vasut <marek.vasut+rene...@mailbox.org>
---
Cc: Andre Przywara <andre.przyw...@arm.com>
Cc: Ashok Reddy Soma <ashok.reddy.s...@amd.com>
Cc: Jagan Teki <ja...@amarulasolutions.com>
Cc: Michael Walle <mwa...@kernel.org>
Cc: Michal Simek <michal.si...@amd.com>
Cc: Patrice Chotard <patrice.chot...@foss.st.com>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Pratyush Yadav <p.ya...@ti.com>
Cc: Quentin Schulz <quentin.sch...@cherry.de>
Cc: Sean Anderson <sean...@gmail.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Takahiro Kuwano <takahiro.kuw...@infineon.com>
Cc: Tom Rini <tr...@konsulko.com>
Cc: Tudor Ambarus <tudor.amba...@linaro.org>
Cc: Venkatesh Yadav Abbarapu <venkatesh.abbar...@amd.com>
Cc: u-boot@lists.denx.de
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 drivers/mtd/spi/spi-nor-core.c | 55 +++++-----------------------------
 1 file changed, 8 insertions(+), 47 deletions(-)

diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index f5c9868bbca..19bf5cfb4f0 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -956,32 +956,12 @@ static int clean_bar(struct spi_nor *nor)
 
 static int write_bar(struct spi_nor *nor, u32 offset)
 {
-       u8 cmd, bank_sel, upage_curr;
+       u8 cmd, bank_sel;
        int ret;
-       struct mtd_info *mtd = &nor->mtd;
-
-       /* Wait until previous write command is finished */
-       if (spi_nor_wait_till_ready(nor))
-               return 1;
-
-       if (nor->flags & (SNOR_F_HAS_PARALLEL | SNOR_F_HAS_STACKED) &&
-           mtd->size <= SZ_32M)
-               return 0;
-
-       if (mtd->size <= SZ_16M)
-               return 0;
-
-       offset = offset % (u32)mtd->size;
-       bank_sel = offset >> 24;
 
-       upage_curr = nor->spi->flags & SPI_XFER_U_PAGE;
-
-       if (!(nor->flags & SNOR_F_HAS_STACKED) && bank_sel == nor->bank_curr)
-               return 0;
-       else if (upage_curr == nor->upage_prev && bank_sel == nor->bank_curr)
-               return 0;
-
-       nor->upage_prev = upage_curr;
+       bank_sel = offset / SZ_16M;
+       if (bank_sel == nor->bank_curr)
+               goto bar_end;
 
        cmd = nor->bank_write_cmd;
        write_enable(nor);
@@ -991,19 +971,15 @@ static int write_bar(struct spi_nor *nor, u32 offset)
                return ret;
        }
 
+bar_end:
        nor->bank_curr = bank_sel;
-
-       return write_disable(nor);
+       return nor->bank_curr;
 }
 
 static int read_bar(struct spi_nor *nor, const struct flash_info *info)
 {
        u8 curr_bank = 0;
        int ret;
-       struct mtd_info *mtd = &nor->mtd;
-
-       if (mtd->size <= SZ_16M)
-               return 0;
 
        switch (JEDEC_MFR(info)) {
        case SNOR_MFR_SPANSION:
@@ -1015,30 +991,15 @@ static int read_bar(struct spi_nor *nor, const struct 
flash_info *info)
                nor->bank_write_cmd = SPINOR_OP_WREAR;
        }
 
-       if (nor->flags & SNOR_F_HAS_PARALLEL)
-               nor->spi->flags |= SPI_XFER_LOWER;
-
        ret = nor->read_reg(nor, nor->bank_read_cmd,
-                           &curr_bank, 1);
+                                   &curr_bank, 1);
        if (ret) {
                debug("SF: fail to read bank addr register\n");
                return ret;
        }
        nor->bank_curr = curr_bank;
 
-       // Make sure both chips use the same BAR
-       if (nor->flags & SNOR_F_HAS_PARALLEL) {
-               write_enable(nor);
-               ret = nor->write_reg(nor, nor->bank_write_cmd, &curr_bank, 1);
-               if (ret)
-                       return ret;
-
-               ret = write_disable(nor);
-               if (ret)
-                       return ret;
-       }
-
-       return ret;
+       return 0;
 }
 #endif
 
-- 
2.45.2

Reply via email to