All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Andy Shevchenko
	<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: [PATCH v1 06/10] spi: dw: eliminate speed variable in ->transfer_one()
Date: Wed, 14 Oct 2015 23:12:21 +0300	[thread overview]
Message-ID: <1444853545-59868-7-git-send-email-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <1444853545-59868-1-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

There is no point to have a separate variable for speed in ->transfer_one().

While here, remove !chip->clk_div from a condition since it is assigned
simultaneously with chip->speed_hz. We can do this safely because
 a) transfer speed can't be higher than max_freq and therefore chip->clk_div
    can be 0 only when chip->speed_hz is 0, and
 b) transfer speed can't be 0, otherwise we will get division by zero
    exception.

Signed-off-by: Andy Shevchenko <andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
---
 drivers/spi/spi-dw.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index f7e36db..5dae557 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -285,8 +285,7 @@ static int dw_spi_transfer_one(struct spi_master *master,
 	struct chip_data *chip = spi_get_ctldata(spi);
 	u8 imask = 0;
 	u16 txlevel = 0;
-	u16 clk_div = 0;
-	u32 speed = 0;
+	u16 clk_div;
 	u32 cr0;
 	int ret;
 
@@ -301,14 +300,11 @@ static int dw_spi_transfer_one(struct spi_master *master,
 	spi_enable_chip(dws, 0);
 
 	/* Handle per transfer options for bpw and speed */
-	speed = chip->speed_hz;
-	if ((transfer->speed_hz != speed) || !chip->clk_div) {
-		speed = transfer->speed_hz;
-
+	if (transfer->speed_hz != chip->speed_hz) {
 		/* clk_div doesn't support odd number */
-		clk_div = (dws->max_freq / speed + 1) & 0xfffe;
+		clk_div = (dws->max_freq / transfer->speed_hz + 1) & 0xfffe;
 
-		chip->speed_hz = speed;
+		chip->speed_hz = transfer->speed_hz;
 		chip->clk_div = clk_div;
 
 		spi_set_clk(dws, chip->clk_div);
-- 
2.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-10-14 20:12 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-14 20:12 [PATCH v1 00/10] spi: dw: bug fix and clean up series Andy Shevchenko
2015-10-14 20:12 ` [PATCH v1 01/10] spi: dw: explicitly free IRQ handler in dw_spi_remove_host() Andy Shevchenko
2015-10-14 20:12   ` Andy Shevchenko
2015-10-19 19:29   ` Mark Brown
2015-10-19 19:29     ` Mark Brown
     [not found] ` <1444853545-59868-1-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-14 20:12   ` [PATCH v1 02/10] spi: dw: use plain struct device * at earlier ->probe() Andy Shevchenko
     [not found]     ` <1444853545-59868-3-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: use plain struct device * at earlier ->probe()" to the spi tree Mark Brown
2015-10-14 20:12   ` [PATCH v1 03/10] spi: dw: remove unneeded cr0 member of struct chip_data Andy Shevchenko
     [not found]     ` <1444853545-59868-4-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: remove unneeded cr0 member of struct chip_data" to the spi tree Mark Brown
2015-10-14 20:12   ` [PATCH v1 04/10] spi: dw: remove a NULL check when call ->remove() Andy Shevchenko
     [not found]     ` <1444853545-59868-5-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:32       ` Mark Brown
2015-10-14 20:12   ` [PATCH v1 05/10] spi: dw: remove bits_per_word member of struct chip_data Andy Shevchenko
     [not found]     ` <1444853545-59868-6-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: remove bits_per_word member of struct chip_data" to the spi tree Mark Brown
2015-10-14 20:12   ` Andy Shevchenko [this message]
     [not found]     ` <1444853545-59868-7-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: eliminate speed variable in ->transfer_one()" " Mark Brown
2015-10-14 20:12   ` [PATCH v1 07/10] spi: dw: eliminate unused threshold variables Andy Shevchenko
     [not found]     ` <1444853545-59868-8-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: eliminate unused threshold variables" to the spi tree Mark Brown
2015-10-14 20:12   ` [PATCH v1 08/10] spi: dw: introduce spi_shutdown_chip() Andy Shevchenko
     [not found]     ` <1444853545-59868-9-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw: introduce spi_shutdown_chip()" to the spi tree Mark Brown
2015-10-14 20:12   ` [PATCH v1 09/10] spi: dw-pci: remove unused pdev member from struct dw_spi_pci Andy Shevchenko
     [not found]     ` <1444853545-59868-10-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw-pci: remove unused pdev member from struct dw_spi_pci" to the spi tree Mark Brown
2015-10-14 20:12   ` [PATCH v1 10/10] spi: dw-mmio: convert to unified device property API Andy Shevchenko
     [not found]     ` <1444853545-59868-11-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-10-19 19:43       ` Applied "spi: dw-mmio: convert to unified device property API" 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=1444853545-59868-7-git-send-email-andriy.shevchenko@linux.intel.com \
    --to=andriy.shevchenko-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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.