diff options
| -rw-r--r-- | drivers/mtd/spi/sf_ops.c | 2 | ||||
| -rw-r--r-- | drivers/mtd/spi/sf_probe.c | 1 | ||||
| -rw-r--r-- | include/spi.h | 3 | 
3 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/mtd/spi/sf_ops.c b/drivers/mtd/spi/sf_ops.c index c009af5c2..2396e2272 100644 --- a/drivers/mtd/spi/sf_ops.c +++ b/drivers/mtd/spi/sf_ops.c @@ -269,7 +269,9 @@ int spi_flash_cmd_read_ops(struct spi_flash *flash, u32 offset,  	/* Handle memory-mapped SPI */  	if (flash->memory_map) { +		spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP);  		memcpy(data, flash->memory_map + offset, len); +		spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP_END);  		return 0;  	} diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index 15256369e..6aa7086c4 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -203,6 +203,7 @@ struct spi_flash *spi_flash_validate_params(struct spi_slave *spi, u8 *idcode)  	flash->page_size = (ext_jedec == 0x4d00) ? 512 : 256;  	flash->sector_size = params->sector_size;  	flash->size = flash->sector_size * params->nr_sectors; +	flash->memory_map = spi->memory_map;  	/* Compute erase sector and command */  	if (params->flags & SECT_4K) { diff --git a/include/spi.h b/include/spi.h index c44ebe887..c2086fc62 100644 --- a/include/spi.h +++ b/include/spi.h @@ -27,6 +27,8 @@  /* SPI transfer flags */  #define SPI_XFER_BEGIN	0x01			/* Assert CS before transfer */  #define SPI_XFER_END	0x02			/* Deassert CS after transfer */ +#define SPI_XFER_MMAP	0x08			/* Memory Mapped start */ +#define SPI_XFER_MMAP_END	0x10		/* Memory Mapped End */  /* Header byte that marks the start of the message */  #define SPI_PREAMBLE_END_BYTE		0xec @@ -46,6 +48,7 @@ struct spi_slave {  	unsigned int bus;  	unsigned int cs;  	unsigned int max_write_size; +	void *memory_map;  };  /** |