diff options
author | Mark Brown <broonie@kernel.org> | 2023-05-08 16:25:26 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-05-08 16:25:26 +0300 |
commit | dd69654cd32acad1a32d8e1c7b085a34db9d47e5 (patch) | |
tree | 9b9f884b5a19db2649204ac94ff085fae933a9ae /Documentation/devicetree/bindings/spi | |
parent | 97a03a9b9361108bbd82446661367e0082a68518 (diff) | |
parent | b5762d95607e74eec91ef39c7902f127c80d43aa (diff) | |
download | linux-dd69654cd32acad1a32d8e1c7b085a34db9d47e5.tar.xz |
spi: Add DMA mode support to spi-qcom-qspi
Merge series from Vijaya Krishna Nivarthi <quic_vnivarth@quicinc.com>:
There are large number of QSPI irqs that fire during boot/init and later
on every suspend/resume.
This could be made faster by doing DMA instead of PIO.
Below is comparison for number of interrupts raised in 2 scenarios...
Boot up and stabilise
Suspend/Resume
Sequence PIO DMA
=======================
Boot-up 69088 19284
S/R 5066 3430
Speed test results...
spi-nor read times in sec after 2 min uptime
============================================
PIO - Iterations-1000, min=3.18, max=3.74, avg=3.53
DMA - Iterations-1000, min=1.21, max=2.28, avg=1.79
spi-nor write times in sec after 2 min uptime
=============================================
PIO - Iterations-1000, min=3.20, max=8.24, avg=3.58
DMA - Iterations-1000, min=1.25, max=5.13, avg=1.82
Further testing performed...
a) multiple entries in sgt (simulated by max_dma_len = 1024)
b) fallback to pio (simulated by dma setup failure)
Diffstat (limited to 'Documentation/devicetree/bindings/spi')
-rw-r--r-- | Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml b/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml index ee8f7ea907b0..1696ac46a660 100644 --- a/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml +++ b/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml @@ -29,6 +29,9 @@ properties: reg: maxItems: 1 + iommus: + maxItems: 1 + interrupts: maxItems: 1 |