On 16-07-19, 11:26, Peter Ujfalusi wrote: > Hi, > > Changes since v4: > - Split the DMA_COMPLETE and !txstate check as Vinod suggested > > Change since v3: > - fix DMA pointer tracking for memcpy > - completion polling is only done when it is asked by not providing > DMA_PREP_INTERRUPT for memcpy > > Changes since v2: > - Fix typo in the comment for patch 0 > > Changes since v1: > - Cleanup patch for the array register handling > - typo fixed in patch2 commit message > > The code around the array register access was pretty confusing for the first > look, so clean them up first then use the cleaner way in the polled handling. > > When a DMA client driver does not set the DMA_PREP_INTERRUPT because it > does not want to use interrupts for DMA completion or because it can not > rely on DMA interrupts due to executing the memcpy when interrupts are > disabled it will poll the status of the transfer. > > Since we can not tell from any EDMA register that the transfer is > completed, we can only know that the paRAM set has been sent to TPTC for > processing we need to check the residue of the transfer, if it is 0 then > the transfer is completed. > > The polled completion can bve tested by applying: > https://patchwork.kernel.org/patch/10966499/ > > Enabling the memcpy for EDMA and run the dmatest with polled = 1. > > Or, enable the EDMA memcpy support and boot up any dra7 family device with > display enabled. The workaround for DMM errata i878 uses polled DMA memcpy. Applied, thanks. Fixed typo in 2nd patch while at it -- ~Vinod