Created attachment 144913 [details] dmesg output Hi! I'm running Fedora 30, kernel 5.1.19 and I can't seem to get audio output through HDMI or DisplayPort. `aplay -l` gives me: **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC1220 Analog [ALC1220 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 1: ALC1220 Digital [ALC1220 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 `aplay -L` gives me: 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, ALC1220 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog Front speakers surround21:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 2.1 Surround output to Front and Subwoofer speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=PCH,DEV=0 HDA Intel PCH, ALC1220 Digital IEC958 (S/PDIF) Digital Audio Output hdmi:CARD=PCH,DEV=0 HDA Intel PCH, HDMI 0 HDMI Audio Output hdmi:CARD=PCH,DEV=1 HDA Intel PCH, HDMI 1 HDMI Audio Output hdmi:CARD=PCH,DEV=2 HDA Intel PCH, HDMI 2 HDMI Audio Output In the other end of the HDMI and DisplayPort cables I have one monitor each that I have plugged in a headphone to (Yes, I've connected a headphone to each to test this out)
Forgot to mention that the processor is i9 9900k and the motherboard is ASUS WS Z390 PRO
Can you please verify the issue with drmtip and attach dmesg? (https://cgit.freedesktop.org/drm-tip)
Hi! I have compiled the kernel and I am running it now. Still no sound. Attaching the dmesg output
Created attachment 144919 [details] drm-tip dmesg output
What's interesting is that `pacmd list-sinks` seems to find something at least: 1 sink(s) available. * index: 2 name: <alsa_output.pci-0000_00_1f.3.hdmi-stereo> driver: <module-alsa-card.c> flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: RUNNING suspend cause: (none) priority: 9030 volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB balance 0.00 base volume: 65536 / 100% / 0.00 dB volume steps: 65537 muted: no current latency: 25.02 ms max request: 4 KiB max rewind: 4 KiB monitor source: 2 sample spec: s16le 2ch 44100Hz channel map: front-left,front-right Stereo used by: 1 linked by: 1 configured latency: 25.01 ms; range is 0.50 .. 2000.00 ms card: 0 <alsa_card.pci-0000_00_1f.3> module: 6 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "HDMI 0" alsa.id = "HDMI 0" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "3" alsa.card = "0" alsa.card_name = "HDA Intel PCH" alsa.long_card_name = "HDA Intel PCH at 0x6001110000 irq 192" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:00:1f.3" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "a348" device.product.name = "Cannon Lake PCH cAVS" device.form_factor = "internal" device.string = "hdmi:0" device.buffering.buffer_size = "352800" device.buffering.fragment_size = "176400" device.access_mode = "mmap+timer" device.profile.name = "hdmi-stereo" device.profile.description = "Digital Stereo (HDMI)" device.description = "Built-in Audio Digital Stereo (HDMI)" alsa.mixer_name = "Realtek ALC1220" alsa.components = "HDA:10ec1168,10438724,00100101 HDA:8086280b,80860101,00100000" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: yes) properties: device.icon_name = "video-display" device.product.name = "C27HG7x" active port: <hdmi-output-0>
Can you try with only one monitor connected? * * * Side note, the device has LSPCON. Seems like there's a lot going on in the dmesg. Seems like DP-MST is involved. The driver detects that the monitor supports audio: [ 3.691122] [drm:drm_detect_monitor_audio [drm]] Monitor has basic audio support [ 3.691853] [drm:drm_helper_probe_single_connector_modes [drm_kms_helper]] [CONNECTOR:86:DP-1] status updated from unknown to connected [ 3.691859] [drm:drm_add_display_info [drm]] non_desktop set to 0 [ 3.691865] [drm:drm_add_edid_modes [drm]] ELD monitor C27HG7x [ 3.691870] [drm:drm_add_edid_modes [drm]] ELD size 32, SAD count 1 ELD seems fine. However we get a first warn which seems CEC-related: [ 3.746353] [drm:drm_detect_monitor_audio [drm]] Monitor has basic audio support [ 3.747023] WARNING: CPU: 0 PID: 100 at kernel/kmod.c:137 __request_module+0x1e1/0x3a8 [ 3.747023] Modules linked in: i915 drm_kms_helper drm igb crct10dif_pclmul crc32_pclmul crc32c_intel e1000e nvme dca nvme_core i2c_algo_bit ghash_clmulni_intel video wmi hid_microsoft ff_memless [ 3.747027] CPU: 0 PID: 100 Comm: kworker/u32:1 Tainted: G U 5.3.0-rc2drmtip+ #1 [ 3.747027] Hardware name: ASUSTeK COMPUTER INC. WS Z390 PRO/WS Z390 PRO, BIOS 0401 08/31/2018 [ 3.747028] Workqueue: events_unbound async_run_entry_fn [ 3.747029] RIP: 0010:__request_module+0x1e1/0x3a8 [ 3.747029] Code: 31 c9 ba 01 00 00 00 be 03 00 00 00 48 c7 c7 80 bc 44 b3 e8 21 0e 02 00 e9 8b fe ff ff e8 97 ee ff ff 84 c0 0f 84 72 fe ff ff <0f> 0b e9 6b fe ff ff 65 8b 05 11 96 f0 4d 89 c0 48 0f a3 05 3f 7f [ 3.747030] RSP: 0018:ffff9fd5404579f8 EFLAGS: 00010202 [ 3.747030] RAX: ffff8c9e269e6901 RBX: 0000000000000001 RCX: 0000000000000000 [ 3.747031] RDX: ffffffffb31a20e5 RSI: ffffffffb318bc30 RDI: ffff8c9e25c98000 [ 3.747031] RBP: ffff9fd540457ad8 R08: ffff8c9e26112a23 R09: 0000000000000000 [ 3.747031] R10: ffff9fd540457ae8 R11: ffff8c9e26112a23 R12: 0000000000000000 [ 3.747031] R13: ffffffffb318bc30 R14: 0000000000000001 R15: ffff9fd540457ae8 [ 3.747032] FS: 0000000000000000(0000) GS:ffff8c9e2d800000(0000) knlGS:0000000000000000 [ 3.747032] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 3.747033] CR2: 00007fef5ad82fe0 CR3: 00000004b140a002 CR4: 00000000003606f0 [ 3.747033] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 3.747033] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 3.747034] Call Trace: [ 3.747037] ? kvasprintf+0x7d/0xc0 [ 3.747039] ? kobject_set_name_vargs+0x6f/0x90 [ 3.747041] rc_map_get+0x30/0x60 [ 3.747042] rc_register_device+0x119/0x4e0 [ 3.747043] cec_register_adapter+0x21c/0x290 [ 3.747046] drm_dp_cec_set_edid+0x106/0x176 [drm_kms_helper] [ 3.747066] intel_dp_detect+0x1b9/0x4c0 [i915] [ 3.747070] drm_helper_probe_single_connector_modes+0xd7/0x6c0 [drm_kms_helper] [ 3.747075] drm_client_modeset_probe+0x278/0x10f0 [drm] [ 3.747077] ? update_load_avg+0x76/0x600 [ 3.747077] ? update_curr+0xe1/0x1d0 [ 3.747080] __drm_fb_helper_initial_config_and_unlock+0x42/0x440 [drm_kms_helper] [ 3.747081] ? __switch_to+0x80/0x440 [ 3.747101] intel_fbdev_initial_config+0x14/0x30 [i915] [ 3.747102] async_run_entry_fn+0x39/0x160 [ 3.747104] process_one_work+0x19d/0x340 [ 3.747105] worker_thread+0x50/0x3b0 [ 3.747106] kthread+0xfb/0x130 [ 3.747107] ? process_one_work+0x340/0x340 [ 3.747108] ? kthread_park+0x80/0x80 [ 3.747109] ret_from_fork+0x1f/0x40 [ 3.747111] WARNING: CPU: 0 PID: 100 at kernel/kmod.c:137 __request_module+0x1e1/0x3a8 [ 3.747111] ---[ end trace 5ed3e0cc2a55e722 ]--- And then a second warn which seems audio-related: [ 3.848226] [drm:intel_atomic_check [i915]] hw max bpp: 36, pipe bpp: 24, dithering: 0 [ 3.848242] [drm:pipe_config_mismatch [i915]] fastset mismatch in has_audio unable to verify whether state matches exactly, forcing modeset (expected no, found yes) [ 3.848259] [drm:intel_atomic_check [i915]] New cdclk calculated to be logical 675000 kHz, actual 675000 kHz [ 3.848275] [drm:intel_atomic_check [i915]] New voltage level calculated to be logical 3, actual 3 [ 3.848277] ------------[ cut here ]------------ [ 3.848278] WARN_ON(was_visible) [ 3.848302] WARNING: CPU: 0 PID: 7 at drivers/gpu/drm/i915/display/intel_display.c:11521 intel_plane_atomic_calc_changes+0x24a/0x720 [i915] [ 3.848303] Modules linked in: i915 drm_kms_helper drm igb crct10dif_pclmul crc32_pclmul crc32c_intel e1000e nvme dca nvme_core i2c_algo_bit ghash_clmulni_intel video wmi hid_microsoft ff_memless [ 3.848307] CPU: 0 PID: 7 Comm: kworker/0:1 Tainted: G U W 5.3.0-rc2drmtip+ #1 [ 3.848307] Hardware name: ASUSTeK COMPUTER INC. WS Z390 PRO/WS Z390 PRO, BIOS 0401 08/31/2018 [ 3.848311] Workqueue: events output_poll_execute [drm_kms_helper] [ 3.848327] RIP: 0010:intel_plane_atomic_calc_changes+0x24a/0x720 [i915] [ 3.848328] Code: 84 54 fe ff ff 48 c7 c6 fb 2e 94 c0 48 c7 c7 9e 22 94 c0 44 88 5c 24 1c 88 44 24 18 4c 89 54 24 10 88 54 24 0c e8 d4 3d 85 f1 <0f> 0b 0f b6 54 24 0c 44 0f b6 5c 24 1c 0f b6 44 24 18 4c 8b 54 24 [ 3.848329] RSP: 0018:ffff9fd540073b58 EFLAGS: 00010282 [ 3.848330] RAX: 0000000000000000 RBX: ffff8c9e0c2aa800 RCX: 0000000000000000 [ 3.848331] RDX: 0000000000000014 RSI: ffffffffb3bc1a94 RDI: 0000000000000246 [ 3.848331] RBP: ffff8c9e0d9ba000 R08: 00000000e56010ed R09: 0000000000000014 [ 3.848331] R10: ffffffffb3bc1e60 R11: 00000000b3bc1a7f R12: ffff8c9e088ae000 [ 3.848332] R13: ffff8c9e0d883e00 R14: ffff8c9e2652c800 R15: 0000000000000001 [ 3.848332] FS: 0000000000000000(0000) GS:ffff8c9e2d800000(0000) knlGS:0000000000000000 [ 3.848333] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 3.848334] CR2: 00007fef5ad82fe0 CR3: 00000004b140a002 CR4: 00000000003606f0 [ 3.848334] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 3.848335] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 3.848335] Call Trace: [ 3.848341] drm_atomic_helper_check_planes+0xec/0x1e0 [drm_kms_helper] [ 3.848358] intel_atomic_check+0x7a5/0x14b0 [i915] [ 3.848366] drm_atomic_check_only+0x54d/0x780 [drm] [ 3.848374] drm_atomic_commit+0x13/0x50 [drm] [ 3.848380] drm_client_modeset_commit_atomic+0x1d0/0x1f0 [drm] [ 3.848387] drm_client_modeset_commit_force+0x50/0x150 [drm] [ 3.848391] drm_fb_helper_restore_fbdev_mode_unlocked+0x49/0xa0 [drm_kms_helper] [ 3.848395] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper] [ 3.848398] drm_fb_helper_hotplug_event.part.0+0x97/0xb0 [drm_kms_helper] [ 3.848402] drm_kms_helper_hotplug_event+0x26/0x30 [drm_kms_helper] [ 3.848405] output_poll_execute+0x1a9/0x1c0 [drm_kms_helper] [ 3.848407] process_one_work+0x19d/0x340 [ 3.848408] worker_thread+0x50/0x3b0 [ 3.848410] kthread+0xfb/0x130 [ 3.848411] ? process_one_work+0x340/0x340 [ 3.848412] ? kthread_park+0x80/0x80 [ 3.848413] ret_from_fork+0x1f/0x40 [ 3.848431] WARNING: CPU: 0 PID: 7 at drivers/gpu/drm/i915/display/intel_display.c:11521 intel_plane_atomic_calc_changes+0x24a/0x720 [i915] [ 3.848431] ---[ end trace 5ed3e0cc2a55e723 ]--- But then apparently we enable audio on pipe B: [ 4.140908] [drm:intel_audio_codec_enable [i915]] ELD on [CONNECTOR:100:DP-2], [ENCODER:99:DDI C] [ 4.140927] [drm:hsw_audio_codec_enable [i915]] Enable audio codec on transcoder B, 32 bytes ELD [ 4.140947] [drm:hsw_audio_config_update [i915]] using automatic Maud, Naud And then another warning. On pipe C, sometimes we get: [ 23.525625] [drm:i915_audio_component_get_eld [i915]] Not valid for port C
Yes, it does indeed work if I reboot with only one monitor connected. It did *NOT* work if I only disconnected one monitor - although that was maybe expected from what I gathered in your comment.
And it continues to work after I hooked the second monitor after I rebooted.
Correction; it works even better if I only boot with one monitor connected. When I connect the second monitor I get two HDMI/DisplayPort audio outputs - like expected.
@Simon, any further comments on this?
I'd say this is one more MST bug, which doesn't route audio correctly in some cases. Needs more investigation to figure out a fix.
Kim, If you don't mind can you verify the issue with latest drmtip? Last verified 2 months ago, it would be good to know if the situation has changed with the latest drmtip.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/intel/issues/705.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.