All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <computersforpeace@gmail.com>
To: <linux-mtd@lists.infradead.org>
Cc: Heiner Kallweit <hkallweit1@gmail.com>,
	Brian Norris <computersforpeace@gmail.com>,
	Han Xu <han.xu@nxp.com>, Michal Suchanek <hramrach@gmail.com>,
	Boris Brezillon <boris.brezillon@free-electrons.com>,
	Javier Martinez Canillas <javier@osg.samsung.com>,
	Rafal Milecki <zajec5@gmail.com>, Jagan Teki <jteki@openedev.com>,
	"Andrew F. Davis" <afd@ti.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Gabor Juhos <juhosg@openwrt.org>, Bean Huo <beanhuo@micron.com>,
	linux-kernel@vger.kernel.org,
	Bayi Cheng <bayi.cheng@mediatek.com>,
	Joachim Eastwood <manabian@gmail.com>,
	Cyrille Pitchen <cyrille.pitchen@atmel.com>
Subject: [PATCH v7 05/10] mtd: nxp-spifi: return amount of data transferred or error in read/write
Date: Thu,  5 May 2016 17:31:51 -0700	[thread overview]
Message-ID: <1462494716-95312-6-git-send-email-computersforpeace@gmail.com> (raw)
In-Reply-To: <1462494716-95312-1-git-send-email-computersforpeace@gmail.com>

Add checking of SPI transfer errors and return them from read/write
functions. Also return the amount of data transferred.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
---
New in v7

 drivers/mtd/spi-nor/nxp-spifi.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/spi-nor/nxp-spifi.c b/drivers/mtd/spi-nor/nxp-spifi.c
index 187adba5e69f..b0fb86996b8f 100644
--- a/drivers/mtd/spi-nor/nxp-spifi.c
+++ b/drivers/mtd/spi-nor/nxp-spifi.c
@@ -185,7 +185,7 @@ static ssize_t nxp_spifi_read(struct spi_nor *nor, loff_t from, size_t len,
 	memcpy_fromio(buf, spifi->flash_base + from, len);
 	*retlen += len;
 
-	return 0;
+	return len;
 }
 
 static ssize_t nxp_spifi_write(struct spi_nor *nor, loff_t to, size_t len,
@@ -194,6 +194,7 @@ static ssize_t nxp_spifi_write(struct spi_nor *nor, loff_t to, size_t len,
 	struct nxp_spifi *spifi = nor->priv;
 	u32 cmd;
 	int ret;
+	size_t i;
 
 	ret = nxp_spifi_set_memory_mode_off(spifi);
 	if (ret)
@@ -209,10 +210,14 @@ static ssize_t nxp_spifi_write(struct spi_nor *nor, loff_t to, size_t len,
 	      SPIFI_CMD_FRAMEFORM(spifi->nor.addr_width + 1);
 	writel(cmd, spifi->io_base + SPIFI_CMD);
 
-	while (len--)
-		writeb(*buf++, spifi->io_base + SPIFI_DATA);
+	for (i = 0; i < len; i++)
+		writeb(buf[i], spifi->io_base + SPIFI_DATA);
 
-	return nxp_spifi_wait_for_cmd(spifi);
+	ret = nxp_spifi_wait_for_cmd(spifi);
+	if (ret)
+		return ret;
+
+	return len;
 }
 
 static int nxp_spifi_erase(struct spi_nor *nor, loff_t offs)
-- 
2.8.0.rc3.226.g39d4020

  parent reply	other threads:[~2016-05-06  0:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-06  0:31 [PATCH v7 00/10] Add error checking to spi-nor read and write Brian Norris
2016-05-06  0:31 ` [PATCH v7 01/10] mtd: spi-nor: change return value of read/write Brian Norris
2016-05-06  0:31 ` [PATCH v7 02/10] mtd: m25p80: return amount of data transferred or error in read/write Brian Norris
2016-05-06  0:31 ` [PATCH v7 03/10] mtd: fsl-quadspi: return amount of data read/written or error Brian Norris
2016-05-06  0:31 ` [PATCH v7 04/10] mtd: mtk-quadspi: return amount of data transferred or error in read/write Brian Norris
2016-05-06  0:31 ` Brian Norris [this message]
2016-05-06  0:31 ` [PATCH v7 06/10] mtd: spi-nor: check return value from write Brian Norris
2016-05-06  0:31 ` [PATCH v7 07/10] mtd: spi-nor: stop passing around retlen Brian Norris
2016-05-06  0:31 ` [PATCH v7 08/10] mtd: spi-nor: simplify write loop Brian Norris
2016-05-06  0:31 ` [PATCH v7 09/10] mtd: spi-nor: add read loop Brian Norris
2016-05-06  0:31 ` [PATCH v7 10/10] mtd: m25p80: read in spi_max_transfer_size chunks Brian Norris
2016-05-16 19:47 ` [PATCH v7 00/10] Add error checking to spi-nor read and write Michal Suchanek
2016-05-18  1:24   ` Brian Norris
2016-05-26 20:12     ` Michal Suchanek
2016-05-23 16:08 ` Cyrille Pitchen
2016-06-02  0:26 ` Brian Norris

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=1462494716-95312-6-git-send-email-computersforpeace@gmail.com \
    --to=computersforpeace@gmail.com \
    --cc=afd@ti.com \
    --cc=bayi.cheng@mediatek.com \
    --cc=beanhuo@micron.com \
    --cc=boris.brezillon@free-electrons.com \
    --cc=cyrille.pitchen@atmel.com \
    --cc=han.xu@nxp.com \
    --cc=hkallweit1@gmail.com \
    --cc=hramrach@gmail.com \
    --cc=javier@osg.samsung.com \
    --cc=jteki@openedev.com \
    --cc=juhosg@openwrt.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=manabian@gmail.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=zajec5@gmail.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.