mtd: spi: Fix logging in spi-nor-tiny
authorSean Anderson <seanga2@gmail.com>
Tue, 15 Sep 2020 14:44:43 +0000 (10:44 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 30 Sep 2020 12:52:41 +0000 (08:52 -0400)
This fixes dev_xxx() not always being called with a device. In
spi_nor_reg_read, a the slave device may not always be available, so we use
bus and cs instead.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Tested-by: Patrick Delaunay <patrick.delaunay@st.com>
drivers/mtd/spi/spi-nor-tiny.c

index fa26ea3..07c8c7b 100644 (file)
@@ -55,9 +55,19 @@ static int spi_nor_read_reg(struct spi_nor *nor, u8 code, u8 *val, int len)
        int ret;
 
        ret = spi_nor_read_write_reg(nor, &op, val);
-       if (ret < 0)
-               dev_dbg(&flash->spimem->spi->dev, "error %d reading %x\n", ret,
+       if (ret < 0) {
+               /*
+                * spi_slave does not have a struct udevice member without DM,
+                * so use the bus and cs instead.
+                */
+#if CONFIG_IS_ENABLED(DM_SPI)
+               dev_dbg(nor->spi->dev, "error %d reading %x\n", ret,
                        code);
+#else
+               log_debug("spi%u.%u: error %d reading %x\n",
+                         nor->spi->bus, nor->spi->cs, ret, code);
+#endif
+       }
 
        return ret;
 }
@@ -512,7 +522,8 @@ static int spansion_read_cr_quad_enable(struct spi_nor *nor)
        /* Check current Quad Enable bit value. */
        ret = read_cr(nor);
        if (ret < 0) {
-               dev_dbg(dev, "error while reading configuration register\n");
+               dev_dbg(nor->dev,
+                       "error while reading configuration register\n");
                return -EINVAL;
        }
 
@@ -524,7 +535,7 @@ static int spansion_read_cr_quad_enable(struct spi_nor *nor)
        /* Keep the current value of the Status Register. */
        ret = read_sr(nor);
        if (ret < 0) {
-               dev_dbg(dev, "error while reading status register\n");
+               dev_dbg(nor->dev, "error while reading status register\n");
                return -EINVAL;
        }
        sr_cr[0] = ret;
@@ -785,7 +796,7 @@ int spi_nor_scan(struct spi_nor *nor)
        }
 
        if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) {
-               dev_dbg(dev, "address width is too large: %u\n",
+               dev_dbg(nor->dev, "address width is too large: %u\n",
                        nor->addr_width);
                return -EINVAL;
        }