mbox series

[v3,0/8] Fix Exynos4210 DMA support

Message ID 20200123052540.6132-1-linux@roeck-us.net
Headers show
Series Fix Exynos4210 DMA support | expand

Message

Guenter Roeck Jan. 23, 2020, 5:25 a.m. UTC
Commit 59520dc65e ("hw/arm/exynos4210: Add DMA support for the Exynos4210")
introduced DMA support for Exynos4210. Unfortunately, it never really
worked. DMA interrupt line and polarity was wrong, and the serial port
needs extra code to support DMA. This patch series fixes the problem.

The series also converts pl330 and exynos4210_uart code to support tracing.
While not strictly necessary, this was very useful for debugging,
and it seemed too valuable to drop it from the final series. Similar,
improved support for receive FIFO handling is not strictly necessary
to fix DMA handling, but I initially thought that it was and added the
code. Like tracing support it seemed too valuable to drop it.

The series was tested with qemu's smdkc210 and nuri emulations and with
exynos4210-smdkv310.dtb. Without the series, the emulation does not react
to serial line input, and serial line output stalls when using DMA. With
this series in place, serial line input is handled correctly, serial
output does not stall, and DMA interrupts are observed and handled.

v3: Increased number of or-irq-lines to 48 to support the full number
    of lines needed. Simplifications in handling UCON register when
    handling receive timeouts. Don't save timer state in VMSTATE.
    Added Reviewed-by: tags as received.
v2: Addressed all feedback comments but one (see last patch of series).
    Please see individual patches for details.

Comments

Peter Maydell Jan. 23, 2020, 3:20 p.m. UTC | #1
On Thu, 23 Jan 2020 at 05:25, Guenter Roeck <linux@roeck-us.net> wrote:
>
> Commit 59520dc65e ("hw/arm/exynos4210: Add DMA support for the Exynos4210")
> introduced DMA support for Exynos4210. Unfortunately, it never really
> worked. DMA interrupt line and polarity was wrong, and the serial port
> needs extra code to support DMA. This patch series fixes the problem.
>
> The series also converts pl330 and exynos4210_uart code to support tracing.
> While not strictly necessary, this was very useful for debugging,
> and it seemed too valuable to drop it from the final series. Similar,
> improved support for receive FIFO handling is not strictly necessary
> to fix DMA handling, but I initially thought that it was and added the
> code. Like tracing support it seemed too valuable to drop it.
>
> The series was tested with qemu's smdkc210 and nuri emulations and with
> exynos4210-smdkv310.dtb. Without the series, the emulation does not react
> to serial line input, and serial line output stalls when using DMA. With
> this series in place, serial line input is handled correctly, serial
> output does not stall, and DMA interrupts are observed and handled.

Applied to target-arm.next, thanks.

-- PMM
Guenter Roeck Jan. 23, 2020, 3:39 p.m. UTC | #2
On Thu, Jan 23, 2020 at 03:20:48PM +0000, Peter Maydell wrote:
> On Thu, 23 Jan 2020 at 05:25, Guenter Roeck <linux@roeck-us.net> wrote:
> >
> > Commit 59520dc65e ("hw/arm/exynos4210: Add DMA support for the Exynos4210")
> > introduced DMA support for Exynos4210. Unfortunately, it never really
> > worked. DMA interrupt line and polarity was wrong, and the serial port
> > needs extra code to support DMA. This patch series fixes the problem.
> >
> > The series also converts pl330 and exynos4210_uart code to support tracing.
> > While not strictly necessary, this was very useful for debugging,
> > and it seemed too valuable to drop it from the final series. Similar,
> > improved support for receive FIFO handling is not strictly necessary
> > to fix DMA handling, but I initially thought that it was and added the
> > code. Like tracing support it seemed too valuable to drop it.
> >
> > The series was tested with qemu's smdkc210 and nuri emulations and with
> > exynos4210-smdkv310.dtb. Without the series, the emulation does not react
> > to serial line input, and serial line output stalls when using DMA. With
> > this series in place, serial line input is handled correctly, serial
> > output does not stall, and DMA interrupts are observed and handled.
> 
> Applied to target-arm.next, thanks.
> 
Thanks a lot for your help!

Guenter