Re: [PATCH v3 04/14] dmaengine: pl330: Add quirk 'arm,pl330-periph-burst'

Vinod Koul
2020-07-15T05:56:07Z

> This patch adds the qurik to use burst transfers only
> for pl330 controller, even for request with a length of 1.
>
> Although, the correct way should be: if the peripheral request
> length is 1, the peripheral should use SINGLE request, and then
> notify the dmac using SINGLE mode by src/dst_maxburst with 1.
>
> For example, on the Rockchip SoCs, all the peripherals can use
> SINGLE or BURST request by setting GRF registers. it is possible
> that if these peripheral drivers are used only for Rockchip SoCs.
> Unfortunately, it's not, such as dw uart, which is used so widely,
> and we can't set src/dst_maxburst according to the SoCs' specific
> to compatible with all the other SoCs.
>
> So, for convenience, all the peripherals are set as BURST request
> by default on the Rockchip SoCs. even for request with a length of 1.
> the current pl330 driver will perform SINGLE transfer if the client's
> maxburst is 1, which still should be working according to chapter 2.6.6
> of datasheet which describe how DMAC performs SINGLE transfers for
> a BURST request. Unfortunately, it's broken on the Rockchip SoCs,
> which support only matching transfers, such as BURST transfer for
> BURST request, SINGLE transfer for SINGLE request.
>
> Finally, we add the quirk to specify pl330 to use burst transfers only.