Re: [PATCH linux-next v3 1/1] spi: imx: dynamic burst length adjust for PIO mode

From: Jiada Wang
Date: Thu Jun 01 2017 - 03:56:09 EST


Hello Fabio

On 05/29/2017 04:07 AM, Fabio Estevam wrote:
Hi Jiada,

On Fri, May 26, 2017 at 2:02 AM,<jiada_wang@xxxxxxxxxx> wrote:
From: Jiada Wang<jiada_wang@xxxxxxxxxx>

previously burst length (BURST_LENGTH) is always set to equal
to bits_per_word, causes a 10us gap between each word in
transfer, which significantly affects performance.

This patch uses 32 bits transfer to simulate lower bits transfer,
and adjusts burst length runtimely to use biggeest burst length
as possible to reduce the gaps in transfer for PIO mode.
Just curious: what is the performance gain you observe with this patch?
I did some performance test with 576/384/192 bytes data,
following is the result between the test w & w/o this patch
(ecspi controller works in PIO and loopback mode)

with this patch:
bytes bpw time (ms)
576 8 9.2
576 16 9.2
384 8 6.2
192 8 3.1

without this patch
bytes bpw time(ms)
576 8 14.4
576 16 11.6
384 8 9.6
384 16 7.8
192 8 4.8
192 16 3.9


Thanks,
Jiada