Skip to content
Commit d39b8872 authored by Quanyang Wang's avatar Quanyang Wang Committed by Bruce Ashfield
Browse files

sound: xilinx: use hdmi-codec as dp audio codec



According to the description in the section "Audio Management" of
Chapter 33 in "Zynq UltraScale+ Device Technical Reference Manual",
A set/clr operation to TX_AUDIO_CONTROL register is needed when we
start/stop audio play. It means that when we stop playing audio,
TX_AUDIO_CONTROL register should be cleared. Now the dp codec driver
xilinx-dp-codec.c can't access DP Tx registers and it has no control
of DP Tx Audio registers. This results that even if we close the audio
device after playing audio, Tx Audio is still working and it triggers
numerous underflow interrupts (bit 17 in DP_INT_STATUS).

zcu102-zynqmp:~$ cat /proc/interrupts | grep display
 52:    1063792    0    0    0   GICv2 151 Level   fd4a0000.display

zcu102-zynqmp:~$ top
Mem: 158168K used, 3864792K free, 9992K shrd, 0K buff, 36500K cached
CPU:  0.0% usr  1.0% sys  0.0% nic 98.9% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.03 0.03 0.01 1/122 391
  PID  PPID USER    STAT   VSZ %VSZ CPU %CPU COMMAND
  223     2 root    SW       0  0.0   0  0.9 [irq/52-fd4a0000]
  352     1 root    S    94148  2.3   0  0.0 /usr/sbin/tcf-agent -d -L- -l0

So we register a HDMI codec device and use callbacks in hdmi_codec_ops
to set/clr TX_AUDIO_CONTROL.

Signed-off-by: default avatarQuanyang Wang <quanyang.wang@windriver.com>
Signed-off-by: default avatarBruce Ashfield <bruce.ashfield@gmail.com>
parent 8419cecd
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment