[0/2] spi: Add DMA mode support to spi-qcom-qspi

Message ID 1680631400-28865-1-git-send-email-quic_vnivarth@quicinc.com
Headers
Series spi: Add DMA mode support to spi-qcom-qspi |

Message

Vijaya Krishna Nivarthi April 4, 2023, 6:03 p.m. UTC
  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 acenarios...
Boot up and stabilise
Suspend/Resume

Sequence   PIO    DMA
=======================
Boot-up    69088  19284
S/R        5066   3430

Vijaya Krishna Nivarthi (2):
  arm64: dts: qcom: sc7280: Add stream-id of qspi to iommus
  spi: spi-qcom-qspi: Add DMA mode support

 arch/arm64/boot/dts/qcom/sc7280.dtsi |   1 +
 drivers/spi/spi-qcom-qspi.c          | 429 ++++++++++++++++++++++++++++++++---
 2 files changed, 399 insertions(+), 31 deletions(-)
  

Comments

Stephen Boyd April 4, 2023, 8:30 p.m. UTC | #1
Quoting Vijaya Krishna Nivarthi (2023-04-04 11:03:18)
> 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 acenarios...
> Boot up and stabilise
> Suspend/Resume
>
> Sequence   PIO    DMA
> =======================
> Boot-up    69088  19284
> S/R        5066   3430
>

The interrupts are less, yes, but does it save time or power?
  
Vijaya Krishna Nivarthi April 12, 2023, 3:28 p.m. UTC | #2
Thank you for the review...


On 4/5/2023 2:00 AM, Stephen Boyd wrote:
> Quoting Vijaya Krishna Nivarthi (2023-04-04 11:03:18)
>> 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 acenarios...
>> Boot up and stabilise
>> Suspend/Resume
>>
>> Sequence   PIO    DMA
>> =======================
>> Boot-up    69088  19284
>> S/R        5066   3430
>>
> The interrupts are less, yes, but does it save time or power?

We have not made measurements but the change is expected to improve 
performance.

Testing revealed no regressions.