Bug 41366

Summary: [r600 KMS] HDMI on a Fusion board only comes up when LVDS is already enabled
Product: DRI Reporter: Simon Farnsworth <simon.farnsworth>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: NEW --- QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg showing the modeset that results in HDMI being off unexpectedly
none
dmesg showing the modeset that results in HDMI working
none
use hardcoded dig encoder to transmitter mapping none

Description Simon Farnsworth 2011-09-30 10:12:18 UTC
I'm running airlied's drm-fixes, git revision fdfc61594e6de21c23f955818ef78bcab9bafe40, and experiencing "interesting" times trying to get HDMI to work on a Fusion GPU (detected by X as [    49.876] (--) RADEON(0): Chipset: "AMD Radeon HD 6310 Graphics" (ChipID = 0x9802)).

If I run:
xrandr --output HDMI-0 --off
xrandr --output LVDS --auto
xrandr --output HDMI-0 --mode 1920x1200

the HDMI monitor comes up at 1920x1200

If I run:
xrandr --output HDMI-0 --off
xrandr --output LVDS --off
xrandr --output HDMI-0 --mode 1920x1200

the HDMI monitor immediately enters DPMS Off state, and stays there.

I've confirmed with "grep . /sys/class/drm/card0-HDMI-A-1/*" that the kernel thinks the HDMI connector is switched on. The only difference I can see is that HDMI works when it gets CRTC 1, but not when it gets CRTC 0.

I have captured logs from the kernel with drm.debug=0x6 during the runs, in case that explains what's going on; I will attach them to this bug.
Comment 1 Simon Farnsworth 2011-09-30 10:13:00 UTC
Created attachment 51804 [details]
dmesg showing the modeset that results in HDMI being off unexpectedly
Comment 2 Simon Farnsworth 2011-09-30 10:13:24 UTC
Created attachment 51805 [details]
dmesg showing the modeset that results in HDMI working
Comment 3 Alex Deucher 2011-10-05 15:08:22 UTC
Strange, everything looks correct.  I'll dig into it.  Manually specifying the crtc seems to work, e.g.,

xrandr --output HDMI-0 --mode 1920x1200 --crtc 1
xrandr --output HDMI-0 --mode 1920x1200 --crtc 0
Comment 4 Alex Deucher 2011-10-05 15:35:55 UTC
Created attachment 52024 [details] [review]
use hardcoded dig encoder to transmitter mapping

This patch fixes the issue for me.
Comment 5 Simon Farnsworth 2011-10-06 03:10:23 UTC
Tested the patch - it works for me.
Comment 6 Florian Mickler 2012-01-12 14:46:12 UTC
A patch referencing this bug report has been merged in Linux v3.1-rc10:

commit cb7cf41961fe10773c491c75ae73539ad4bbed66
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Oct 5 18:36:50 2011 -0400

    drm/radeon/kms: use hardcoded dig encoder to transmitter mapping for DCE4.1

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.