* Adam Ford <aford173@xxxxxxxxx> [191009 14:09]: > On Wed, Oct 9, 2019 at 8:42 AM Vignesh Raghavendra <vigneshr@xxxxxx> wrote: > > > > Hi Adam, > > > > On 06/10/19 10:34 PM, Adam Ford wrote: > > > Has anyone else had any issues using the CONFIG_SERIAL_8250_DMA on the OMAP? > > > > > > I can use the DMA on the legacy, omap-serial driver, but when I enable > > > the DMA on the 8250-omap driver, I get missing frames in Bluetooth. > > > > > > The older driver seems to have an ISR that seems to address a variety > > > of items compared to the very tiny ISR for 8250-omap.c. > > > > > > I am not exactly sure where to start, but if someone has any > > > suggestions on how I can troubleshoot, please let me know. As of now, > > > I have to disable CONFIG_SERIAL_8250_DMA to get the Bluetooth > > > connected to UART2 operational on a DM3730 at 3,000,000 baud, but it > > > appears to work just fine after some patches I just submitted for > > > handling RTS/CTS. The legacy omap-serial driver works fine with DMA. > > > > > > > Mainline omap-serial does not support DMA (evident from lack of > > dmaengine API calls) and therefore is not a regression. So OMAP3 UART > > DMA was never tested at least with 8250 driver. > > I am not sure enabling UART DMA on OMAP3 would be a trivial job. We need > > analyse of whether all erratas workarounds are implemented and see if > > there any difference wrt DMA integration itself. Do we know if UART DMA > > ever worked on OMAP3 previously? > > Can we disable CONFIG_SERIAL_8250_DMA from omap2plus_defconfig? As > of right now, it's the only way I can use the Bluetooth. There are > #ifdef's in the 8250-omap driver, so it looks like some of the hooks > are there, but if it's incomplete, it seems like we shouldn't enable > this config option by default yet. >From what I recall I tested that DMA on omap3 worked fine with runtime PM for console. Certainly there are issues still remaining though. If you want to disable dma for a specific port, just delete the add /delete-property/dma-names for the port in question in your board specific dts file. See 8250_omap.c for of_property_count_strings(np, "dma-names"). Regards, Tony