Bug 80691

Summary: HDMI audio stops working when drm_kms_helper edid overwrite in place
Product: DRI Reporter: warlock0
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: lukas.redlinger
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
edid parsed with edid-decode
none
extracted edid.bin none

Description warlock0 2014-06-29 20:26:28 UTC
Created attachment 101987 [details]
dmesg

When powering on a PC with radeon gpu (E350 in this case), without an output device powered on (on the hdmi out), X won't start.
Therefore using drm_kms_helper to overwrite the edid information and forcing the display to on is needed.

In this combination the hdmi audio output is not working.
It also is not working if the system is started with the overwrite in place and TV / AVR turned on.
It seems as if the audio codec is not enabled when EDID is loaded with drm_kms_helper

Expectation: Audio will continue to work when overwriting EDID with drm_kms_helper.
Comment 1 warlock0 2014-06-29 20:27:57 UTC
Created attachment 101988 [details]
edid parsed with edid-decode
Comment 2 warlock0 2014-06-29 20:29:36 UTC
Created attachment 101989 [details]
extracted edid.bin
Comment 3 mcluki 2014-07-14 20:38:16 UTC
I am also affected by this bug, running a Zotac ZBox AD02 with AMD Fusion. Can I provide more information that is needed to get this fixed?
Comment 4 Alex Deucher 2014-07-15 15:07:24 UTC
The driver caches a copy of the edid in the driver connector structure (radeon_connector->edid) when it it reads the edid from the monitor via the get_modes() or detect() connector callbacks.  When you provide a user supplied edid, the driver's copy never gets updated since no additional driver callbacks are called.  It should be handled properly on my 3.17-wip branch:
http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.17-wip
Comment 5 Jani Nikula 2015-03-26 08:50:03 UTC
(In reply to Alex Deucher from comment #4)
> The driver caches a copy of the edid in the driver connector structure
> (radeon_connector->edid) when it it reads the edid from the monitor via the
> get_modes() or detect() connector callbacks.  When you provide a user
> supplied edid, the driver's copy never gets updated since no additional
> driver callbacks are called.  It should be handled properly on my 3.17-wip
> branch:
> http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-3.17-wip

Alex, did not look at what you did there, but there's no confirmation from the reporters either. I submitted [1] to fix bug 82349, maybe that's relevant for you too?

[1] http://patchwork.freedesktop.org/patch/45675/
Comment 6 Martin Peres 2019-11-19 08:53:26 UTC
-- 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/amd/issues/509.

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.