Hi Mark,
Thanks for your advice.
On 2025/7/8 21:50, Mark Brown wrote:
Subject:
Re: [PATCH v4 2/3] spi: Add Amlogic SPISG driver
From:
Mark Brown <broonie@xxxxxxxxxx>
Date:
2025/7/8 21:50
To:
Xianwei Zhao <xianwei.zhao@xxxxxxxxxxx>
CC:
Sunny Luo <sunny.luo@xxxxxxxxxxx>, Rob Herring <robh@xxxxxxxxxx>, Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>, Conor Dooley <conor+dt@xxxxxxxxxx>, linux-amlogic@xxxxxxxxxxxxxxxxxxx, linux-spi@xxxxxxxxxxxxxxx, devicetree@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
On Tue, Jul 08, 2025 at 06:34:02PM +0800, Xianwei Zhao wrote:
On 2025/7/7 21:05, Mark Brown wrote:The CPU overhead tends to be higher (you can avoid some of it with a
Is it worth having a copybreak such that smaller transfers are doneIf the data volume of a single transfer (xfer) is small, PIO mode does offer
using PIO? With a lot of controllers that increases performance due to
the extra overhead of setting up DMA, talking to the DMA and interrupt
controllers can be as expensive as directly accessing the FIFOs.
some advantages. However, since PIO requires the CPU to wait in a busy loop
for the transfer to complete, it continuously occupies CPU resources. As a
result, its advantages are not particularly significant.
dead reckoning sleep), but the latency vastly improved which for many
applications is a worthwhile advantage. It tends to be things like
accesses to one or two registers on a device with registers where this
wins, 16 bytes or lower would be a common number off the top of my head.
If PIO is to be implemented, it can only handle one transfer at a time (viaIt's probably worth adding something to the framework to be able to take
transfer_one), and not entire messages (which consist of multiple
transfers). In contrast, when processing messages, the SPI controller can
handle the entire sequence in one go, which also provides certain benefits.
a decision at the message level, for writes this tends to all fall out
naturally since the write will tend to be a single transfer anyway.
I will try to add new API message_can_dma for framework, and implement PIO for message.