On Fri, Feb 21, 2020 at 11:48 AM Michael Walle <michael@xxxxxxxx> wrote: > > The DMA channel might not be available at the first probe time. This is > esp. the case if the DMA controller has an IOMMU mapping. > > Use the new dma_request_chan() API and handle EPROBE_DEFER errors. Also > reorder the code a bit, so that we don't prepare the whole UART just to > determine that the DMA channel is not ready yet and we have to undo all > the stuff. Try to map the DMA channels earlier. Changing this means you never probe successfully if you boot a kernel with the DMA driver disabled (or it's IOMMU disabled). Some other drivers request DMA in open() and can work either way. Rob