linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Alexandru Ardelean <alexandru.ardelean@analog.com>
To: <bcm-kernel-feedback-list@broadcom.com>,
	<linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-spi@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-tegra@vger.kernel.org>
Cc: f.fainelli@gmail.com, baolin.wang@linaro.org,
	zhang.lyra@gmail.com, linus.walleij@linaro.org,
	broonie@kernel.org, orsonzhai@gmail.com,
	Alexandru Ardelean <alexandru.ardelean@analog.com>,
	jic23@kernel.org
Subject: [PATCH v4 09/19] spi: use new `spi_transfer_delay_exec` helper where straightforward
Date: Thu, 26 Sep 2019 13:51:37 +0300	[thread overview]
Message-ID: <20190926105147.7839-10-alexandru.ardelean@analog.com> (raw)
In-Reply-To: <20190926105147.7839-1-alexandru.ardelean@analog.com>

For many places in the spi drivers, using the new `spi_transfer_delay`
helper is straightforward.
It's just replacing:
```
  if (t->delay_usecs)
     udelay(t->delay_usecs);
```
with `spi_transfer_delay(t)` which handles both `delay_usecs` and the new
`delay` field.

This change replaces in all places (in the spi drivers)  where this change
is simple.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---
 drivers/spi/spi-atmel.c         |  3 +--
 drivers/spi/spi-bcm63xx-hsspi.c |  3 +--
 drivers/spi/spi-cavium.c        |  3 +--
 drivers/spi/spi-fsl-dspi.c      |  3 +--
 drivers/spi/spi-fsl-espi.c      |  3 +--
 drivers/spi/spi-fsl-spi.c       |  3 +--
 drivers/spi/spi-mpc512x-psc.c   |  3 +--
 drivers/spi/spi-mpc52xx-psc.c   |  3 +--
 drivers/spi/spi-omap-100k.c     |  3 +--
 drivers/spi/spi-pl022.c         | 25 +++++++++++--------------
 drivers/spi/spi-sc18is602.c     |  3 +--
 drivers/spi/spi-sh-hspi.c       |  3 +--
 drivers/spi/spi-topcliff-pch.c  |  7 +------
 drivers/spi/spi-txx9.c          |  3 +--
 drivers/spi/spi-xcomm.c         |  3 +--
 15 files changed, 25 insertions(+), 46 deletions(-)

diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c
index f04b92791515..2f7388e53b82 100644
--- a/drivers/spi/spi-atmel.c
+++ b/drivers/spi/spi-atmel.c
@@ -1389,8 +1389,7 @@ static int atmel_spi_one_transfer(struct spi_master *master,
 		&& as->use_pdc)
 		atmel_spi_dma_unmap_xfer(master, xfer);
 
-	if (xfer->delay_usecs)
-		udelay(xfer->delay_usecs);
+	spi_transfer_delay_exec(xfer);
 
 	if (xfer->cs_change) {
 		if (list_is_last(&xfer->transfer_list,
diff --git a/drivers/spi/spi-bcm63xx-hsspi.c b/drivers/spi/spi-bcm63xx-hsspi.c
index 9a06ffdb73b8..949b59b6449f 100644
--- a/drivers/spi/spi-bcm63xx-hsspi.c
+++ b/drivers/spi/spi-bcm63xx-hsspi.c
@@ -291,8 +291,7 @@ static int bcm63xx_hsspi_transfer_one(struct spi_master *master,
 
 		msg->actual_length += t->len;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		if (t->cs_change)
 			bcm63xx_hsspi_set_cs(bs, spi->chip_select, false);
diff --git a/drivers/spi/spi-cavium.c b/drivers/spi/spi-cavium.c
index 5aaf21582cb5..6854c3ce423b 100644
--- a/drivers/spi/spi-cavium.c
+++ b/drivers/spi/spi-cavium.c
@@ -119,8 +119,7 @@ static int octeon_spi_do_transfer(struct octeon_spi *p,
 			*rx_buf++ = (u8)v;
 		}
 
-	if (xfer->delay_usecs)
-		udelay(xfer->delay_usecs);
+	spi_transfer_delay_exec(xfer);
 
 	return xfer->len;
 }
diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
index 53335ccc98f6..736071e2b9d8 100644
--- a/drivers/spi/spi-fsl-dspi.c
+++ b/drivers/spi/spi-fsl-dspi.c
@@ -752,8 +752,7 @@ static int dspi_transfer_one_message(struct spi_master *master,
 			dspi->waitflags = 0;
 		}
 
-		if (transfer->delay_usecs)
-			udelay(transfer->delay_usecs);
+		spi_transfer_delay_exec(transfer);
 	}
 
 out:
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index f20326714b9d..732bf3195917 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -427,8 +427,7 @@ static int fsl_espi_trans(struct spi_message *m, struct spi_transfer *trans)
 
 	ret = fsl_espi_bufs(spi, trans);
 
-	if (trans->delay_usecs)
-		udelay(trans->delay_usecs);
+	spi_transfer_delay_exec(trans);
 
 	return ret;
 }
diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c
index 1d9b33aa1a3b..139ab57aec99 100644
--- a/drivers/spi/spi-fsl-spi.c
+++ b/drivers/spi/spi-fsl-spi.c
@@ -417,8 +417,7 @@ static int fsl_spi_do_one_msg(struct spi_master *master,
 		}
 		m->actual_length += t->len;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		if (cs_change) {
 			ndelay(nsecs);
diff --git a/drivers/spi/spi-mpc512x-psc.c b/drivers/spi/spi-mpc512x-psc.c
index a337b842ae8c..ea1b07953d38 100644
--- a/drivers/spi/spi-mpc512x-psc.c
+++ b/drivers/spi/spi-mpc512x-psc.c
@@ -311,8 +311,7 @@ static int mpc512x_psc_spi_msg_xfer(struct spi_master *master,
 			break;
 		m->actual_length += t->len;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		if (cs_change)
 			mpc512x_psc_spi_deactivate_cs(spi);
diff --git a/drivers/spi/spi-mpc52xx-psc.c b/drivers/spi/spi-mpc52xx-psc.c
index c7e478b9b586..17935e71b02f 100644
--- a/drivers/spi/spi-mpc52xx-psc.c
+++ b/drivers/spi/spi-mpc52xx-psc.c
@@ -234,8 +234,7 @@ static void mpc52xx_psc_spi_work(struct work_struct *work)
 				break;
 			m->actual_length += t->len;
 
-			if (t->delay_usecs)
-				udelay(t->delay_usecs);
+			spi_transfer_delay_exec(t);
 
 			if (cs_change)
 				mpc52xx_psc_spi_deactivate_cs(spi);
diff --git a/drivers/spi/spi-omap-100k.c b/drivers/spi/spi-omap-100k.c
index b955ca8796d2..89608eb55f1f 100644
--- a/drivers/spi/spi-omap-100k.c
+++ b/drivers/spi/spi-omap-100k.c
@@ -321,8 +321,7 @@ static int omap1_spi100k_transfer_one_message(struct spi_master *master,
 			}
 		}
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		/* ignore the "leave it on after last xfer" hint */
 
diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c
index 7fedea67159c..3024c30e7f2e 100644
--- a/drivers/spi/spi-pl022.c
+++ b/drivers/spi/spi-pl022.c
@@ -485,12 +485,11 @@ static void giveback(struct pl022 *pl022)
 					struct spi_transfer, transfer_list);
 
 	/* Delay if requested before any change in chip select */
-	if (last_transfer->delay_usecs)
-		/*
-		 * FIXME: This runs in interrupt context.
-		 * Is this really smart?
-		 */
-		udelay(last_transfer->delay_usecs);
+	/*
+	 * FIXME: This runs in interrupt context.
+	 * Is this really smart?
+	 */
+	spi_transfer_delay_exec(last_transfer);
 
 	if (!last_transfer->cs_change) {
 		struct spi_message *next_msg;
@@ -1401,12 +1400,11 @@ static void pump_transfers(unsigned long data)
 		previous = list_entry(transfer->transfer_list.prev,
 					struct spi_transfer,
 					transfer_list);
-		if (previous->delay_usecs)
-			/*
-			 * FIXME: This runs in interrupt context.
-			 * Is this really smart?
-			 */
-			udelay(previous->delay_usecs);
+		/*
+		 * FIXME: This runs in interrupt context.
+		 * Is this really smart?
+		 */
+		spi_transfer_delay_exec(previous);
 
 		/* Reselect chip select only if cs_change was requested */
 		if (previous->cs_change)
@@ -1520,8 +1518,7 @@ static void do_polling_transfer(struct pl022 *pl022)
 			previous =
 			    list_entry(transfer->transfer_list.prev,
 				       struct spi_transfer, transfer_list);
-			if (previous->delay_usecs)
-				udelay(previous->delay_usecs);
+			spi_transfer_delay_exec(previous);
 			if (previous->cs_change)
 				pl022_cs_control(pl022, SSP_CHIP_SELECT);
 		} else {
diff --git a/drivers/spi/spi-sc18is602.c b/drivers/spi/spi-sc18is602.c
index 11acddc83304..5497eeb3bf3e 100644
--- a/drivers/spi/spi-sc18is602.c
+++ b/drivers/spi/spi-sc18is602.c
@@ -211,8 +211,7 @@ static int sc18is602_transfer_one(struct spi_master *master,
 		}
 		status = 0;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 	}
 	m->status = status;
 	spi_finalize_current_message(master);
diff --git a/drivers/spi/spi-sh-hspi.c b/drivers/spi/spi-sh-hspi.c
index 7f73f91d412a..a62034e2a7cb 100644
--- a/drivers/spi/spi-sh-hspi.c
+++ b/drivers/spi/spi-sh-hspi.c
@@ -190,8 +190,7 @@ static int hspi_transfer_one_message(struct spi_controller *ctlr,
 
 		msg->actual_length += t->len;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		if (cs_change) {
 			ndelay(nsecs);
diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
index f88cbb94ce12..223353fa2d8a 100644
--- a/drivers/spi/spi-topcliff-pch.c
+++ b/drivers/spi/spi-topcliff-pch.c
@@ -1229,12 +1229,7 @@ static void pch_spi_process_messages(struct work_struct *pwork)
 			"%s:data->current_msg->actual_length=%d\n",
 			__func__, data->current_msg->actual_length);
 
-		/* check for delay */
-		if (data->cur_trans->delay_usecs) {
-			dev_dbg(&data->master->dev, "%s:delay in usec=%d\n",
-				__func__, data->cur_trans->delay_usecs);
-			udelay(data->cur_trans->delay_usecs);
-		}
+		spi_transfer_delay_exec(data->cur_trans);
 
 		spin_lock(&data->lock);
 
diff --git a/drivers/spi/spi-txx9.c b/drivers/spi/spi-txx9.c
index 51759d3fd45f..83daaa597acc 100644
--- a/drivers/spi/spi-txx9.c
+++ b/drivers/spi/spi-txx9.c
@@ -248,8 +248,7 @@ static void txx9spi_work_one(struct txx9spi *c, struct spi_message *m)
 			len -= count * wsize;
 		}
 		m->actual_length += t->len;
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		if (!cs_change)
 			continue;
diff --git a/drivers/spi/spi-xcomm.c b/drivers/spi/spi-xcomm.c
index a3496c46cc1b..1d9b3f03d986 100644
--- a/drivers/spi/spi-xcomm.c
+++ b/drivers/spi/spi-xcomm.c
@@ -188,8 +188,7 @@ static int spi_xcomm_transfer_one(struct spi_master *master,
 		}
 		status = 0;
 
-		if (t->delay_usecs)
-			udelay(t->delay_usecs);
+		spi_transfer_delay_exec(t);
 
 		is_first = false;
 	}
-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2019-09-26 10:54 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-26 10:51 [PATCH v4 00/19] spi: introduce `struct spi_delay` data-type Alexandru Ardelean
2019-09-26 10:51 ` [PATCH v4 01/19] spi: move `cs_change_delay` backwards compat logic outside switch Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: move `cs_change_delay` backwards compat logic outside switch" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 02/19] spi: introduce spi_delay struct as "value + unit" & spi_delay_exec() Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: introduce spi_delay struct as "value + unit" & spi_delay_exec()" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 03/19] spi: make `cs_change_delay` the first user of the `spi_delay` logic Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: make `cs_change_delay` the first user of the `spi_delay` logic" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 04/19] spi: sprd: convert transfer word delay to spi_delay struct Alexandru Ardelean
2019-10-15 11:11   ` Mark Brown
2019-10-15 11:12   ` Applied "spi: sprd: convert transfer word delay to spi_delay struct" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 05/19] spi: orion: use new `word_delay` field for SPI transfers Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: orion: use new `word_delay` field for SPI transfers" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 06/19] spi: spidev: use new `word_delay` field for spi transfers Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spidev: use new `word_delay` field for spi transfers" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 07/19] spi: core, atmel: convert `word_delay_usecs` -> `word_delay` for spi_device Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: core, atmel: convert `word_delay_usecs` -> `word_delay` for spi_device" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 08/19] spi: introduce `delay` field for `spi_transfer` + spi_transfer_delay_exec() Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: introduce `delay` field for `spi_transfer` + spi_transfer_delay_exec()" to the spi tree Mark Brown
2019-09-26 10:51 ` Alexandru Ardelean [this message]
2019-09-26 10:51 ` [PATCH v4 10/19] spi: tegra114: use `spi_transfer_delay_exec` helper Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: tegra114: use `spi_transfer_delay_exec` helper" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 11/19] spi: tegra20-sflash: use to new `spi_transfer_delay_exec` Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: tegra20-sflash: use to new `spi_transfer_delay_exec`" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 12/19] spi: spi-loopback-test: use new `delay` field Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spi-loopback-test: use new `delay` field" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 13/19] spi: spidev: use new `delay` field for spi transfers Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spidev: use new `delay` field for spi transfers" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 14/19] spi: tegra114: change format for `spi_set_cs_timing()` function Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: tegra114: change format for `spi_set_cs_timing()` function" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 15/19] spi: implement SW control for CS times Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: implement SW control for CS times" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 16/19] spi: spi-fsl-espi: convert transfer delay to `spi_delay` format Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spi-fsl-espi: convert transfer delay to `spi_delay` format" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 17/19] spi: spi-falcon: extend warning to `delay` as well Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spi-falcon: extend warning to `delay` as well" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 18/19] spi: bcm63xx: extend error condition to `delay` as well Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: bcm63xx: extend error condition to `delay` as well" to the spi tree Mark Brown
2019-09-26 10:51 ` [PATCH v4 19/19] spi: spi-axi: extend support for the `delay` field Alexandru Ardelean
2019-10-15 11:12   ` Applied "spi: spi-axi: extend support for the `delay` field" to the spi tree Mark Brown

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=20190926105147.7839-10-alexandru.ardelean@analog.com \
    --to=alexandru.ardelean@analog.com \
    --cc=baolin.wang@linaro.org \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=broonie@kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=jic23@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=orsonzhai@gmail.com \
    --cc=zhang.lyra@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).