12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- From 08922f644878c9163ada8df3ef9def89be1d5e90 Mon Sep 17 00:00:00 2001
- From: Vignesh R <vigneshr@ti.com>
- Date: Tue, 29 Mar 2016 11:16:17 +0530
- Subject: [PATCH] mtd: devices: m25p80: add support for mmap read request
- Certain SPI controllers may provide accelerated hardware interface to
- read from m25p80 type flash devices in order to provide better read
- performance. SPI core supports such devices with spi_flash_read() API.
- Call spi_flash_read(), if supported, to make use of such interface.
- Signed-off-by: Vignesh R <vigneshr@ti.com>
- [Brian: add memset()]
- Signed-off-by: Brian Norris <computersforpeace@gmail.com>
- ---
- --- a/drivers/mtd/devices/m25p80.c
- +++ b/drivers/mtd/devices/m25p80.c
- @@ -131,6 +131,28 @@ static int m25p80_read(struct spi_nor *n
- /* convert the dummy cycles to the number of bytes */
- dummy /= 8;
-
- + if (spi_flash_read_supported(spi)) {
- + struct spi_flash_read_message msg;
- + int ret;
- +
- + memset(&msg, 0, sizeof(msg));
- +
- + msg.buf = buf;
- + msg.from = from;
- + msg.len = len;
- + msg.read_opcode = nor->read_opcode;
- + msg.addr_width = nor->addr_width;
- + msg.dummy_bytes = dummy;
- + /* TODO: Support other combinations */
- + msg.opcode_nbits = SPI_NBITS_SINGLE;
- + msg.addr_nbits = SPI_NBITS_SINGLE;
- + msg.data_nbits = m25p80_rx_nbits(nor);
- +
- + ret = spi_flash_read(spi, &msg);
- + *retlen = msg.retlen;
- + return ret;
- + }
- +
- spi_message_init(&m);
- memset(t, 0, (sizeof t));
-
|