mtd: spi-nor: micron-st.c: Replace hardcoded values for addr_nbytes/addr_mode_nbytes
authorTudor Ambarus <tudor.ambarus@microchip.com>
Thu, 28 Jul 2022 04:14:51 +0000 (07:14 +0300)
committerTudor Ambarus <tudor.ambarus@microchip.com>
Tue, 25 Oct 2022 02:11:35 +0000 (05:11 +0300)
We track in the core the internal address mode of the flash. Stop using
hardcoded values for the number of bytes of address and use
nor->addr_nbytes and nor->params->addr_mode_nbytes instead.

Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20220728041451.85559-3-tudor.ambarus@microchip.com
drivers/mtd/spi-nor/micron-st.c

index 3c9681a3f7a33802bd40f21d179151d2955352c3..3c8a90b39c8c63139ebe220941a00242a65b75cb 100644 (file)
@@ -52,18 +52,21 @@ static int micron_st_nor_octal_dtr_en(struct spi_nor *nor)
        struct spi_mem_op op;
        u8 *buf = nor->bouncebuf;
        int ret;
+       u8 addr_mode_nbytes = nor->params->addr_mode_nbytes;
 
        /* Use 20 dummy cycles for memory array reads. */
        *buf = 20;
        op = (struct spi_mem_op)
-               MICRON_ST_NOR_WR_ANY_REG_OP(3, SPINOR_REG_MT_CFR1V, 1, buf);
+               MICRON_ST_NOR_WR_ANY_REG_OP(addr_mode_nbytes,
+                                           SPINOR_REG_MT_CFR1V, 1, buf);
        ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto);
        if (ret)
                return ret;
 
        buf[0] = SPINOR_MT_OCT_DTR;
        op = (struct spi_mem_op)
-               MICRON_ST_NOR_WR_ANY_REG_OP(3, SPINOR_REG_MT_CFR0V, 1, buf);
+               MICRON_ST_NOR_WR_ANY_REG_OP(addr_mode_nbytes,
+                                           SPINOR_REG_MT_CFR0V, 1, buf);
        ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto);
        if (ret)
                return ret;
@@ -98,7 +101,8 @@ static int micron_st_nor_octal_dtr_dis(struct spi_nor *nor)
        buf[0] = SPINOR_MT_EXSPI;
        buf[1] = SPINOR_REG_MT_CFR1V_DEF;
        op = (struct spi_mem_op)
-               MICRON_ST_NOR_WR_ANY_REG_OP(4, SPINOR_REG_MT_CFR0V, 2, buf);
+               MICRON_ST_NOR_WR_ANY_REG_OP(nor->addr_nbytes,
+                                           SPINOR_REG_MT_CFR0V, 2, buf);
        ret = spi_nor_write_any_volatile_reg(nor, &op, SNOR_PROTO_8_8_8_DTR);
        if (ret)
                return ret;