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 <[email protected]>
---

Changes in v2:
- New

 drivers/mtd/spi/spi-nor-tiny.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/mtd/spi/spi-nor-tiny.c b/drivers/mtd/spi/spi-nor-tiny.c
index fa26ea33c8..07c8c7b82b 100644
--- a/drivers/mtd/spi/spi-nor-tiny.c
+++ b/drivers/mtd/spi/spi-nor-tiny.c
@@ -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;
        }
-- 
2.28.0

Reply via email to