浏览代码

sf: stmicro: dont send 4 bytes when reading status register

I can't find anywhere in the datasheet that says the status register needs
3 dummy bytes sent to it before being able to read back the first real
result.  Tests on a Blackfin board show that after writing the opcode, the
status register starts coming back immediately.  So only write out the
read status register opcode before polling the result.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Jason McMullan <mcmullan@netapp.com>
CC: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Mike Frysinger 16 年之前
父节点
当前提交
d9596ffbdc
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/mtd/spi/stmicro.c

+ 3 - 3
drivers/mtd/spi/stmicro.c

@@ -133,12 +133,12 @@ static int stmicro_wait_ready(struct spi_flash *flash, unsigned long timeout)
 	struct spi_slave *spi = flash->spi;
 	struct spi_slave *spi = flash->spi;
 	unsigned long timebase;
 	unsigned long timebase;
 	int ret;
 	int ret;
+	u8 cmd = CMD_M25PXX_RDSR;
 	u8 status;
 	u8 status;
-	u8 cmd[4] = { CMD_M25PXX_RDSR, 0xff, 0xff, 0xff };
 
 
-	ret = spi_xfer(spi, 32, &cmd[0], NULL, SPI_XFER_BEGIN);
+	ret = spi_xfer(spi, 8, &cmd, NULL, SPI_XFER_BEGIN);
 	if (ret) {
 	if (ret) {
-		debug("SF: Failed to send command %02x: %d\n", cmd[0], ret);
+		debug("SF: Failed to send command %02x: %d\n", cmd, ret);
 		return ret;
 		return ret;
 	}
 	}