drm: xlnx: zynqmp_dpsub: Add DP audio support

Add basic DisplayPort audio support.

Support non-live audio playback from two PCMs (DMA channels), and the
volume control in the audio mixer.

TODO:

* Reset doesn't work (ZYNQMP_DISP_AUD_SOFT_RESET). If we do a reset,
  audio playback won't start again. Missing some register writes? It's
  unclear what the reset affects.

* Fix underflows. There seems to be a few underflows for audio DMA when
  starting the playback. However, there are also underflows for video
  DMA, so might not be audio specific.

* What to do if the video is not enabled when starting playback, or
  video is disabled while playback is going on? Currently the
  playback just fails with an IO error.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
9 files changed