dma: xilinx: vdma: Replace pr_debug() with dev_err()

Replace the two pr_debug() calls with dev_err() calls, as they indicate
an error condition.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
dma: xilinx: vdma: Clean up interrupt handler

Read the status register once only, and only acknowledge interrupts that
have been detected.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
dma: xilinx: vdma: Handle unrecoverable errors in interrupt handler

Make sure unrecoverable errors are properly flagged with an appropriate
error message.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
dma: xilinx: vdma: Poll the status register when starting/stopping

After setting or clearing the run/stop bit in the control register, the
DMA engine run status is reflected by the halted bit in the status
register. Fix the driver to poll the halted bit instead of polling the
run/stop bit.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
dma: xilinx: vdma: Clear error flag when resetting the DMA engine

Resetting the DMA engine clears the hardware error conditions. Clear the
software error flag as well.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
xilinx video tpg: Reset the TPG at streamoff time

Stopping the TPG without resetting it confuses the VDMA and results in
VDMA errors the next time the stream is started. Reset the TPG when
stopping the stream for now.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
arch: arm: dts: zc702-drm: Modify dmas for zynq_drm

Modify dmas for zynq_drm node per dma devicetree documentation.

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>
drm: zynq_drm: plane: Switch VDMA mode to park mode

Switch VDMA mode to park mode. Previously, the circular mode
with frame store count = 1 was used. Behavior is the same,
but the park mode is more appropriate because switching buffers
is handled by KMS. + small changes

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>
drm: zynq_drm: plane: Enable/disable in dpms

This patch does enable/disable of osd layers in dpms().
The dimension of layers are initialized to 0x0 when turned off,
and this fixes the issue of some layers not working correctly
when switching number of planes.

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>
drm: zynq_drm: crtc: Enable/disable in dpms()

Change to enable/disable/reset IPs in dpms().

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>
drm: zynq_drm: encoder: Enable/disable vtc in dpms()

Change to enable/disable/reset vtc in dpms().

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>
drm: zynq_drm: plane: Fix to call osd funcs in dpms() properly

Add conditionals to check if osd is available in dpms().
Remove unused member, functions as modified.

Signed-off-by: hyun woo kwon <hyunk@xilinx.com>