Bug 1566165

Summary: Radeon RX460 displayport audio not recognised
Product: [Fedora] Fedora Reporter: Andy Burns <fedora>
Component: xorg-x11-drv-amdgpuAssignee: Jaroslav Kysela <jkysela>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: athertoncj, germano.massullo, jkysela
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-13 12:11:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Output from alsa-info.sh none

Description Andy Burns 2018-04-11 16:16:45 UTC
Created attachment 1420466 [details]
Output from alsa-info.sh

Description of problem:

With radeon hd6450 GPU fedora recognised HD audio connected via displayport monitor, having upgraded to radeon rx460 GPU, fedora no longer recognises HD audio via monitor.

Version-Release number of selected component (if applicable):

kernel.x86_64      4.16.1-300.fc28
alsa-lib.x86_64    1.1.6-2.fc28

How reproducible:
100%

Steps to Reproduce:
1. Boot fedora
2. attempt to set sound output in gnome settings
3. HD audio over display port is missing

Actual results:

only "Digital S/PDIF" and "Line Out" exist
HDMI on DisplayPort is missing

Expected results:

HDMI on DisplayPort is available

Additional info:
Output from alsa-info.sh attached

Comment 1 Andy Burns 2018-04-11 16:25:54 UTC
List of loaded kernel sound modules

lsmod | grep -i snd_hda

snd_hda_codec_realtek   106496  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     57344  1
snd_hda_intel          45056  10
snd_hda_codec         151552  4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core           94208  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               118784  7 snd_hda_intel,snd_hda_codec,snd_pcm_dmaengine,snd_hda_core,snd_soc_rt5640,snd_hda_codec_hdmi,snd_soc_core
snd                    94208  32 snd_compress,snd_hda_intel,snd_hwdep,snd_seq,snd_hda_codec,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_seq_device,snd_hda_codec_realtek,snd_soc_core,snd_pcm

p.s. The HDA over DP works fine in Windows10 with this GPU

Comment 2 Andy Burns 2018-04-12 23:31:11 UTC
List of ALSA devices 

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC892 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC892 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA ATI HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA ATI HDMI, HDMI 2
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 3
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=4
    HDA ATI HDMI, HDMI 4
    HDMI Audio Output

trying speaker test using

$ speaker-test -c 2 -D "sysdefault:CARD=PCH"

does produce white noise on the analogue line outputs, but attempting to test the display port audio with

$ speaker-test -c 2 -D "hdmi:CARD=HDMI,DEV=0"

for each of DEV=0 to DEV=4 produces no sound through the monitor

Comment 3 Andy Burns 2018-04-17 13:09:27 UTC
I had to swap from an rx460 to an rx550 due to hardware issues, the problem persisted, but after a little reading up I realised the amdgpu driver module needs the "dc=1" option to allow HD audio, I did this via 

$ cat /etc/modprobe.d/amdgpu.conf 
options amdgpu dc=1

Others may prefer to add amdgpu.dc=1 to the kernel boot command line, the audio device does now show up, and plays sound, I gather this may still be experimental, so will report back if it causes problems ...

Comment 4 Andy Burns 2018-06-13 11:52:27 UTC
Using the Fedora test day iso with kernel-4.17.0-200.fc28.x86_64
I can confirm that amdgpu driver now recognises the HDMI/DP audio without any modprobe or kernel command line tricks