From: Marek Vasut <marek.vasut+renesas@mailbox.org>
Date: Sat, 26 Oct 2024 20:16:24 +0000 (+0200)
Subject: mtd: spi-nor: Rewrite rem_bank_len calculation
X-Git-Tag: v2025.01-rc5-pxa1908~162^2~2
X-Git-Url: http://git.dujemihanovic.xyz/img/%7B%7B?a=commitdiff_plain;h=003157bd1c2c029abaefb9457965551f305effda;p=u-boot.git

mtd: spi-nor: Rewrite rem_bank_len calculation

Rewrite the code to make it clear exactly where the
SNOR_F_HAS_PARALLEL flag leads to *2 and /2 operation
compared to regular code path. No functional change.

Fixes: 5d40b3d384dc ("mtd: spi-nor: Add parallel and stacked memories support")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---

diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
index e49b7cad02..c1ee466bcc 100644
--- a/drivers/mtd/spi/spi-nor-core.c
+++ b/drivers/mtd/spi/spi-nor-core.c
@@ -1593,13 +1593,14 @@ static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len,
 	}
 
 	while (len) {
-		if (nor->flags & SNOR_F_HAS_PARALLEL) {
-			bank = (u32)from / (SZ_16M << 0x01);
-			rem_bank_len = ((SZ_16M << 0x01) * (bank + 1)) - from;
-		} else {
-			bank = (u32)from / SZ_16M;
-			rem_bank_len = (SZ_16M * (bank + 1)) - from;
-		}
+		bank = (u32)from / SZ_16M;
+		if (nor->flags & SNOR_F_HAS_PARALLEL)
+			bank /= 2;
+
+		rem_bank_len = SZ_16M * (bank + 1);
+		if (nor->flags & SNOR_F_HAS_PARALLEL)
+			rem_bank_len *= 2;
+		rem_bank_len -= from;
 
 		offset = from;