All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vignesh Raghavendra <vigneshr@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] mtd: spi: Improve spi_nor_write_data() implementation
Date: Wed, 17 Apr 2019 18:17:37 +0530	[thread overview]
Message-ID: <70e227a1-c30b-d24e-187a-ff166578da47@ti.com> (raw)
In-Reply-To: <20190416123126.9416-1-rajat.srivastava@nxp.com>



On 16/04/19 5:29 PM, Rajat Srivastava wrote:
> Maximum write size in a single write operation in
> spi_nor_write_data() function can be equal to slave
> tx buffer, which is adjusted in spi_mem_adjust_op_size()
> and write operation gets fragmented.
> 
> Previously data write for the above fragmentation
> didn't incorporate write enable and status checks.
> It was sent to flash at page offsets only.
> 
> Signed-off-by: Rajat Srivastava <rajat.srivastava@nxp.com>
> ---
> Changes in v2:
>   Incorporating review comments given by Vignesh.
>   [PATCH v1]: https://patchwork.ozlabs.org/patch/1078183/

Changes look good as such, but I cannot seem to apply these patch 
locally as mbox for testing. Looking at mail source, it seems to be sent 
in binary format instead of plain text. Could you resend in plain text?	

> 
>   drivers/mtd/spi/spi-nor-core.c | 28 ++++++++++------------------
>   1 file changed, 10 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c
> index c4e2f6a08f..8e754d445d 100644
> --- a/drivers/mtd/spi/spi-nor-core.c
> +++ b/drivers/mtd/spi/spi-nor-core.c
> @@ -116,7 +116,6 @@ static ssize_t spi_nor_write_data(struct spi_nor *nor, loff_t to, size_t len,
>   				   SPI_MEM_OP_ADDR(nor->addr_width, to, 1),
>   				   SPI_MEM_OP_NO_DUMMY,
>   				   SPI_MEM_OP_DATA_OUT(len, buf, 1));
> -	size_t remaining = len;
>   	int ret;
>   
>   	/* get transfer protocols. */
> @@ -127,22 +126,19 @@ static ssize_t spi_nor_write_data(struct spi_nor *nor, loff_t to, size_t len,
>   	if (nor->program_opcode == SPINOR_OP_AAI_WP && nor->sst_write_second)
>   		op.addr.nbytes = 0;
>   
> -	while (remaining) {
> -		op.data.nbytes = remaining < UINT_MAX ? remaining : UINT_MAX;
> -		ret = spi_mem_adjust_op_size(nor->spi, &op);
> -		if (ret)
> -			return ret;
> +	op.data.nbytes = len < UINT_MAX ? len : UINT_MAX;
> +	ret = spi_mem_adjust_op_size(nor->spi, &op);
> +	if (ret)
> +		return ret;
>   
> -		ret = spi_mem_exec_op(nor->spi, &op);
> -		if (ret)
> -			return ret;
> +	ret = spi_mem_exec_op(nor->spi, &op);
> +	if (ret)
> +		return ret;
>   
> -		op.addr.val += op.data.nbytes;
> -		remaining -= op.data.nbytes;
> -		op.data.buf.out += op.data.nbytes;
> -	}
> +	op.addr.val += op.data.nbytes;
> +	op.data.buf.out += op.data.nbytes;
>   
> -	return len;
> +	return op.data.nbytes;
>   }
>   
>   /*
> @@ -1101,10 +1097,6 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
>   			goto write_err;
>   		*retlen += written;
>   		i += written;
> -		if (written != page_remain) {
> -			ret = -EIO;
> -			goto write_err;
> -		}
>   	}
>   
>   write_err:
> 

  reply	other threads:[~2019-04-17 12:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-16 11:59 [U-Boot] [PATCH v2] mtd: spi: Improve spi_nor_write_data() implementation Rajat Srivastava
2019-04-17 12:47 ` Vignesh Raghavendra [this message]
2019-04-18 11:53   ` [U-Boot] [EXT] " Rajat Srivastava
2019-05-17  7:49   ` Ashish Kumar
2019-05-17 14:34     ` Vignesh Raghavendra

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=70e227a1-c30b-d24e-187a-ff166578da47@ti.com \
    --to=vigneshr@ti.com \
    --cc=u-boot@lists.denx.de \
    /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.