All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <computersforpeace@gmail.com>
To: Vignesh R <vigneshr@ti.com>
Cc: David Woodhouse <dwmw2@infradead.org>,
	linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
	Mark Brown <broonie@kernel.org>,
	Cyrille Pitchen <cyrille.pitchen@atmel.com>
Subject: Re: [RESEND][PATCH] mtd: devices: m25p80: add support for mmap read request
Date: Tue, 5 Apr 2016 11:14:27 -0700	[thread overview]
Message-ID: <20160405181427.GA5561@localhost> (raw)
In-Reply-To: <1459230377-26847-1-git-send-email-vigneshr@ti.com>

+ Mark, Cyrille

On Tue, Mar 29, 2016 at 11:16:17AM +0530, Vignesh R wrote:
> 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>
> ---

Applied, with a small diff.

> Resend v5:
> Rebased on top of v4.6-rc1
> v5: http://www.spinics.net/lists/devicetree/msg106696.html
> 
>  drivers/mtd/devices/m25p80.c | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
> index c9c3b7fa3051..7730e633d7d3 100644
> --- a/drivers/mtd/devices/m25p80.c
> +++ b/drivers/mtd/devices/m25p80.c
> @@ -131,6 +131,26 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
>  	/* 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;
> +

I added a memset(&msg, 0, sizeof(msg)), since spi_flash_read() doesn't
guarantee msg.retlen is zeroed for failures. Do we want a
spi_flash_read_message_init() function, to mirror spi_message_init()?

> +		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 */

Speaking of "other combinations": does the TI QSPI controller support
MMAP'ed read modes other than 1/1/{1,2,4}? It doesn't seem to implement
support, and the SPI core doesn't handle this. So if we merge any of
Cyrille's work on other modes, then this is going to break quickly.

> +		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));
>  

Brian

  reply	other threads:[~2016-04-05 18:15 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-29  5:46 [RESEND][PATCH] mtd: devices: m25p80: add support for mmap read request Vignesh R
2016-04-05 18:14 ` Brian Norris [this message]
2016-04-06  5:18   ` Vignesh R
2016-04-06 13:44     ` Cyrille Pitchen
2016-05-18  9:23 ` Michal Suchanek
2016-05-18  9:39   ` Vignesh R
2016-05-18  9:49     ` Michal Suchanek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160405181427.GA5561@localhost \
    --to=computersforpeace@gmail.com \
    --cc=broonie@kernel.org \
    --cc=cyrille.pitchen@atmel.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.