mtd: rawnand: denali: remove DENALI_NR_BANKS macro
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 2 Apr 2019 04:03:08 +0000 (13:03 +0900)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Thu, 18 Apr 2019 06:54:04 +0000 (08:54 +0200)
Use the runtime-detected denali->nbanks instead of hard-coded
DENALI_NR_BANKS (=4).

The actual number of banks depends on the IP configuration, and
can be less than DENALI_NR_BANKS. It is pointless to touch
registers of unsupported banks.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/denali.c

index d8c10444e284ce1f002fa7b0f2be7f930183a4c6..52b704c58eaf64ea5d6099e9410c19eb375b9d7c 100644 (file)
@@ -40,7 +40,6 @@
 #define DENALI_BANK(denali)    ((denali)->active_bank << 24)
 
 #define DENALI_INVALID_BANK    -1
-#define DENALI_NR_BANKS                4
 
 static struct denali_chip *to_denali_chip(struct nand_chip *chip)
 {
@@ -92,7 +91,7 @@ static void denali_enable_irq(struct denali_controller *denali)
 {
        int i;
 
-       for (i = 0; i < DENALI_NR_BANKS; i++)
+       for (i = 0; i < denali->nbanks; i++)
                iowrite32(U32_MAX, denali->reg + INTR_EN(i));
        iowrite32(GLOBAL_INT_EN_FLAG, denali->reg + GLOBAL_INT_ENABLE);
 }
@@ -101,7 +100,7 @@ static void denali_disable_irq(struct denali_controller *denali)
 {
        int i;
 
-       for (i = 0; i < DENALI_NR_BANKS; i++)
+       for (i = 0; i < denali->nbanks; i++)
                iowrite32(0, denali->reg + INTR_EN(i));
        iowrite32(0, denali->reg + GLOBAL_INT_ENABLE);
 }
@@ -117,7 +116,7 @@ static void denali_clear_irq_all(struct denali_controller *denali)
 {
        int i;
 
-       for (i = 0; i < DENALI_NR_BANKS; i++)
+       for (i = 0; i < denali->nbanks; i++)
                denali_clear_irq(denali, i, U32_MAX);
 }
 
@@ -130,7 +129,7 @@ static irqreturn_t denali_isr(int irq, void *dev_id)
 
        spin_lock(&denali->irq_lock);
 
-       for (i = 0; i < DENALI_NR_BANKS; i++) {
+       for (i = 0; i < denali->nbanks; i++) {
                irq_status = ioread32(denali->reg + INTR_STATUS(i));
                if (irq_status)
                        ret = IRQ_HANDLED;