diff options
Diffstat (limited to 'drivers/mtd/spi/macronix.c')
| -rw-r--r-- | drivers/mtd/spi/macronix.c | 48 | 
1 files changed, 4 insertions, 44 deletions
| diff --git a/drivers/mtd/spi/macronix.c b/drivers/mtd/spi/macronix.c index 76d52841d..291fd17de 100644 --- a/drivers/mtd/spi/macronix.c +++ b/drivers/mtd/spi/macronix.c @@ -49,8 +49,6 @@  #define CMD_MX25XX_DP		0xb9	/* Deep Power-down */  #define CMD_MX25XX_RES		0xab	/* Release from DP, and Read Signature */ -#define MACRONIX_SR_WIP		(1 << 0)	/* Write-in-Progress */ -  struct macronix_spi_flash_params {  	u16 idcode;  	u16 page_size; @@ -114,40 +112,6 @@ static const struct macronix_spi_flash_params macronix_spi_flash_table[] = {  	},  }; -static int macronix_wait_ready(struct spi_flash *flash, unsigned long timeout) -{ -	struct spi_slave *spi = flash->spi; -	unsigned long timebase; -	int ret; -	u8 status; -	u8 cmd = CMD_MX25XX_RDSR; - -	ret = spi_xfer(spi, 8, &cmd, NULL, SPI_XFER_BEGIN); -	if (ret) { -		debug("SF: Failed to send command %02x: %d\n", cmd, ret); -		return ret; -	} - -	timebase = get_timer(0); -	do { -		ret = spi_xfer(spi, 8, NULL, &status, 0); -		if (ret) -			return -1; - -		if ((status & MACRONIX_SR_WIP) == 0) -			break; - -	} while (get_timer(timebase) < timeout); - -	spi_xfer(spi, 0, NULL, NULL, SPI_XFER_END); - -	if ((status & MACRONIX_SR_WIP) == 0) -		return 0; - -	/* Timed out */ -	return -1; -} -  static int macronix_read_fast(struct spi_flash *flash,  			      u32 offset, size_t len, void *buf)  { @@ -216,11 +180,9 @@ static int macronix_write(struct spi_flash *flash,  			break;  		} -		ret = macronix_wait_ready(flash, SPI_FLASH_PROG_TIMEOUT); -		if (ret < 0) { -			debug("SF: Macronix page programming timed out\n"); +		ret = spi_flash_cmd_wait_ready(flash, SPI_FLASH_PROG_TIMEOUT); +		if (ret)  			break; -		}  		page_addr++;  		byte_addr = 0; @@ -282,11 +244,9 @@ int macronix_erase(struct spi_flash *flash, u32 offset, size_t len)  			break;  		} -		ret = macronix_wait_ready(flash, SPI_FLASH_PAGE_ERASE_TIMEOUT); -		if (ret < 0) { -			debug("SF: Macronix page erase timed out\n"); +		ret = spi_flash_cmd_wait_ready(flash, SPI_FLASH_PAGE_ERASE_TIMEOUT); +		if (ret)  			break; -		}  	}  	debug("SF: Macronix: Successfully erased %u bytes @ 0x%x\n", |