Re: BUG: imx.c serial driver DMA race/hang on i.MX6Q

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 18, 2015 at 6:47 AM, David Jander <david@xxxxxxxxxxx> wrote:
>
> Hi
>
> I am having the imx.c serial port driver hang in imx_shutdown().
> I am running 4.1-rc8 on an i.MX6Q board.
> If the user-space application calls close() on the serial device,
> imx_shutdown() hangs in his line:
>
>         ret = wait_event_interruptible(sport->dma_wait,
>                         !sport->dma_is_rxing && !sport->dma_is_txing);
>
> wait_event_interruptible() does not return unless I receive some more data.
> When entering wait_event_interruptible, sport->dma_is_rxing == 1 and
> sport->dma_is_txing == 0.
> From that moment onwards, dma_rx_callback() is not called unless I receive
> more data, so sport->dma_is_rxing never gets cleared.
> While bisecting the problem, I could identify the following commit as the one
> that broke the driver for me:
>
> 068500e serial: imx: initialized DMA w/o HW flow enabled
>
> Obviously the problem is not in this commit, but probably in the DMA code. I am
> using this driver on an i.MX6Q and have tried sdma firmware version 1.1 and
> 3.1 so far. The problem appears the same with both.

Could you also try it without loading any external SDMA firmware?

Regards,

Fabio Estevam
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux