linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: broonie@kernel.org
Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, netdev@vger.kernel.org,
	Vladimir Oltean <olteanv@gmail.com>,
	Rob Herring <robh@kernel.org>, Shawn Guo <shawnguo@kernel.org>
Subject: [PATCH v2 5/5] ARM: dts: ls1021a-tsn: Use the DSPI controller in poll mode
Date: Fri, 23 Aug 2019 00:15:14 +0300	[thread overview]
Message-ID: <20190822211514.19288-6-olteanv@gmail.com> (raw)
In-Reply-To: <20190822211514.19288-1-olteanv@gmail.com>

Connected to the LS1021A DSPI is the SJA1105 DSA switch. This
constitutes 4 of the 6 Ethernet ports on this board.

As the SJA1105 is a PTP switch, constant disciplining of its PTP clock
is necessary, and that translates into a lot of SPI I/O even when
otherwise idle.

Switching to using the DSPI in poll mode has several distinct
benefits:

- With interrupts, the DSPI driver in TCFQ mode raises an IRQ after each
  transmitted byte. There is more time wasted for the "waitq" event than
  for actual I/O. And the DSPI IRQ count is by far the largest in
  /proc/interrupts on this board (larger than Ethernet). I should
  mention that due to various LS1021A errata, other operating modes than
  TCFQ are not available.

- The SPI I/O time is both lower, and more consistently so. For a TSN
  switch it is important that all SPI transfers take a deterministic
  time to complete.
  Reading the PTP clock is an important example.
  Egressing through the switch requires some setup in advance (an SPI
  write command). Without this patch, that operation required a
  --tx_timestamp_timeout 50 (ms), now it can be done with
  --tx_timestamp_timeout 10.
  Yet another example is reconstructing timestamps, which has a hard
  deadline because the PTP timestamping counter wraps around in 0.135
  seconds. Combined with other I/O needed for that to happen, there is
  a real risk that the deadline is not always met.

See drivers/net/dsa/sja1105/ for more info about the above.

Cc: Rob Herring <robh@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
---
 arch/arm/boot/dts/ls1021a-tsn.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/ls1021a-tsn.dts b/arch/arm/boot/dts/ls1021a-tsn.dts
index 5b7689094b70..1c09cfc766af 100644
--- a/arch/arm/boot/dts/ls1021a-tsn.dts
+++ b/arch/arm/boot/dts/ls1021a-tsn.dts
@@ -33,6 +33,7 @@
 };
 
 &dspi0 {
+	/delete-property/ interrupts;
 	bus-num = <0>;
 	status = "okay";
 
-- 
2.17.1

  parent reply	other threads:[~2019-08-22 21:15 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-22 21:15 [PATCH v2 0/5] Poll mode for NXP DSPI driver Vladimir Oltean
2019-08-22 21:15 ` [PATCH v2 1/5] spi: spi-fsl-dspi: Reduce indentation level in dspi_interrupt Vladimir Oltean
2019-08-23 11:02   ` Applied "spi: spi-fsl-dspi: Reduce indentation level in dspi_interrupt" to the spi tree Mark Brown
2019-08-22 21:15 ` [PATCH v2 2/5] spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours Vladimir Oltean
2019-08-23 10:28   ` Mark Brown
2019-08-23 10:30     ` Vladimir Oltean
2019-08-23 10:50       ` Mark Brown
2019-08-23 10:59         ` Mark Brown
2019-08-23 12:06           ` Vladimir Oltean
2019-08-23 21:03             ` Mark Brown
2019-08-23 11:02   ` Applied "spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours" to the spi tree Mark Brown
2019-08-22 21:15 ` [PATCH v2 3/5] spi: spi-fsl-dspi: Remove impossible to reach error check Vladimir Oltean
2019-08-23 11:02   ` Applied "spi: spi-fsl-dspi: Remove impossible to reach error check" to the spi tree Mark Brown
2019-08-22 21:15 ` [PATCH v2 4/5] spi: spi-fsl-dspi: Use poll mode in case the platform IRQ is missing Vladimir Oltean
2019-08-23 11:02   ` Applied "spi: spi-fsl-dspi: Use poll mode in case the platform IRQ is missing" to the spi tree Mark Brown
2019-08-22 21:15 ` Vladimir Oltean [this message]
2019-08-26 13:10   ` [PATCH v2 5/5] ARM: dts: ls1021a-tsn: Use the DSPI controller in poll mode Vladimir Oltean
2019-08-27 18:05     ` Mark Brown
2019-08-27 18:06       ` Vladimir Oltean
2019-08-27 18:13         ` Mark Brown
2019-08-27 18:16           ` Vladimir Oltean
2019-08-27 18:31             ` Mark Brown
2019-09-11  6:33             ` Shawn Guo
2019-09-11  7:00               ` Geert Uytterhoeven

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=20190822211514.19288-6-olteanv@gmail.com \
    --to=olteanv@gmail.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=shawnguo@kernel.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 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).