Messages in this thread | | | From | Chunyan Zhang <> | Date | Thu, 29 Nov 2018 17:59:46 +0800 | Subject | Re: [PATCH v2 1/3] mmc: sdhci: add support for using external DMA devices |
| |
Hi Adrian,
On Thu, 29 Nov 2018 at 15:36, Adrian Hunter <adrian.hunter@intel.com> wrote: > > On 29/11/18 8:22 AM, Chunyan Zhang wrote: > > On Tue, 20 Nov 2018 at 21:41, Adrian Hunter <adrian.hunter@intel.com> wrote: > >> > >> On 12/11/18 9:26 AM, Chunyan Zhang wrote: > >>> Some standard SD host controllers can support both external dma > >>> controllers as well as ADMA/SDMA in which the SD host controller > >>> acts as DMA master. TI's omap controller is the case as an example. > >>> > >>> Currently the generic SDHCI code supports ADMA/SDMA integrated in > >>> the host controller but does not have any support for external DMA > >>> controllers implemented using dmaengine, meaning that custom code is > >>> needed for any systems that use an external DMA controller with SDHCI. > >> > >> I still think you probably need to reset the DMA if there are transfer > >> errors - perhaps you could comment on that. Also there are some comments below. > > > > With regard to "transfer error", do you mean if > > sdhci_external_dma_setup() failed? > > No, I mean any error interrupt that can leave the DMA uncompleted. For > SDHCI, resetting the data circuit cleans that up, but presumably something > is needed for external DMA?
Yes, it should need a dmaengine_terminate_all().
How about adding that at here (I will wrap it up of course): https://elixir.bootlin.com/linux/v4.19.5/source/drivers/mmc/host/sdhci.c#L2553
Is there somewhere else I'm missing?
Thanks, Chunyan
| |