Unverified Commit 73e4e708 authored by Mark Brown's avatar Mark Brown
Browse files

spi: spi-fsl-dspi: Target mode improvements

Merge series from James Clark <james.clark@linaro.org>:

Improve usability of target mode by reporting FIFO errors and increasing
the buffer size when DMA is used. While we're touching DMA stuff also
switch to non-coherent memory, although this is unrelated to target
mode.

With the combination of the commit to increase the DMA buffer size and
the commit to use non-coherent memory, the host mode performance figures
are as follows on S32G3:

  # spidev_test --device /dev/spidev1.0 --bpw 8 --size <test_size> --cpha --iter 10000000 --speed 10000000

  Coherent (4096 byte transfers): 6534 kbps
  Non-coherent:                   7347 kbps

  Coherent (16 byte transfers):    447 kbps
  Non-coherent:                    448 kbps

Just for comparison running the same test in XSPI mode:

  4096 byte transfers:            2143 kbps
  16 byte transfers:               637 kbps

These tests required hacking S32G3 to use DMA in host mode, although
the figures should be representative of target mode too where DMA is
used. And the other devices that use DMA in host mode should see similar
improvements.
parents 94b39cb3 5cc49b5a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -226,6 +226,8 @@ Domen Puncer <domen@coderock.org>
Douglas Gilbert <dougg@torque.net>
Drew Fustini <fustini@kernel.org> <drew@pdp7.com>
<duje@dujemihanovic.xyz> <duje.mihanovic@skole.hr>
Easwar Hariharan <easwar.hariharan@linux.microsoft.com> <easwar.hariharan@intel.com>
Easwar Hariharan <easwar.hariharan@linux.microsoft.com> <eahariha@linux.microsoft.com>
Ed L. Cashin <ecashin@coraid.com>
Elliot Berman <quic_eberman@quicinc.com> <eberman@codeaurora.org>
Enric Balletbo i Serra <eballetbo@kernel.org> <enric.balletbo@collabora.com>
+7 −0
Original line number Diff line number Diff line
@@ -3222,6 +3222,10 @@ D: AIC5800 IEEE 1394, RAW I/O on 1394
D: Starter of Linux1394 effort
S: ask per mail for current address

N: Boris Pismenny
E: borisp@mellanox.com
D: Kernel TLS implementation and offload support.

N: Nicolas Pitre
E: nico@fluxnic.net
D: StrongARM SA1100 support integrator & hacker
@@ -4168,6 +4172,9 @@ S: 1513 Brewster Dr.
S: Carrollton, TX 75010
S: USA

N: Dave Watson
D: Kernel TLS implementation.

N: Tim Waugh
E: tim@cyberelk.net
D: Co-architect of the parallel-port sharing system
+2 −2
Original line number Diff line number Diff line
@@ -435,8 +435,8 @@ both cgroups.
Controlling Controllers
-----------------------

Availablity
~~~~~~~~~~~
Availability
~~~~~~~~~~~~

A controller is available in a cgroup when it is supported by the kernel (i.e.,
compiled in, not disabled and not attached to a v1 hierarchy) and listed in the
+1 −4
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@ Spectre_v2 X X
Spectre_v2_user                      X                           X            *       (Note 1)
SRBDS                 X              X            X              X
SRSO                  X              X            X              X
SSB                                                                                   (Note 4)
SSB                                  X
TAA                   X              X            X              X            *       (Note 2)
TSA                   X              X            X              X
=============== ============== ============ ============= ============== ============ ========
@@ -229,9 +229,6 @@ Notes:
   3 --  Disables SMT if cross-thread mitigations are fully enabled, the CPU is
   vulnerable, and STIBP is not supported

   4 --  Speculative store bypass is always enabled by default (no kernel
   mitigation applied) unless overridden with spec_store_bypass_disable option

When an attack-vector is disabled, all mitigations for the vulnerabilities
listed in the above table are disabled, unless mitigation is required for a
different enabled attack-vector or a mitigation is explicitly selected via a
+6 −5
Original line number Diff line number Diff line
@@ -76,20 +76,21 @@ unit as preprocessor statement. The above example would then read::
within the corresponding compilation unit before the #include for
<linux/export.h>. Typically it's placed before the first #include statement.

Using the EXPORT_SYMBOL_GPL_FOR_MODULES() macro
-----------------------------------------------
Using the EXPORT_SYMBOL_FOR_MODULES() macro
-------------------------------------------

Symbols exported using this macro are put into a module namespace. This
namespace cannot be imported.
namespace cannot be imported. These exports are GPL-only as they are only
intended for in-tree modules.

The macro takes a comma separated list of module names, allowing only those
modules to access this symbol. Simple tail-globs are supported.

For example::

  EXPORT_SYMBOL_GPL_FOR_MODULES(preempt_notifier_inc, "kvm,kvm-*")
  EXPORT_SYMBOL_FOR_MODULES(preempt_notifier_inc, "kvm,kvm-*")

will limit usage of this symbol to modules whoes name matches the given
will limit usage of this symbol to modules whose name matches the given
patterns.

How to use Symbols exported in Namespaces
Loading