Created attachment 31836 [details] Xorg log for git master I have two flat panels and a TV connected to my rv770. Ordinarily, I use the two flat panels for X. In order to display things on the TV, I have to disable one of the flat panel outputs with xrandr and enable to the TV output. However, if I do this and then disable the TV output again, the flat panel will not work again. The non-working panel says it is receiving an input signal but it is out of range and recommends that I set the resolution to the panel's optimum. This panel is connected by a VGA connector. This is evidently touching something deep as restarting X does not bring the panel output back from the dead; it comes alive but still reports a bad input signal. Even stranger: when switching to the console in this state, the workingness of the monitors is reversed; the panel that is dead in X displays the console and the panel that is working in X is dead. This happens with version 6.12.3 of the radeon DDX driver, and with git master (both kernel 2.6.32 without KMS.)
Created attachment 31837 [details] Xorg configuration file for git master
Created attachment 31838 [details] dmesg output for git master
The (1.2MB!) Xorg log for 6.12.3 is here: http://pkl.net/~node/misc/6.12.3-Xorg.0.log
Created attachment 31839 [details] Xorg configuration file for 6.12.3
Created attachment 31840 [details] dmesg output for 6.12.3
This also occurs with KMS enabled (kernel from drm-radeon-testing, commit d63ca9dcdfd39d8a0cbdf3a5861e81a558852e5f). However, the workingness of the monitors is not switched when changing to the console. Also worth noting that the TV output ("DIN") is listed as being disconnected and has no modes associated with it.
Created attachment 31886 [details] Xorg log for drm-radeon-testing KMS
Created attachment 31887 [details] Xorg configuration file for drm-radeon-testing KMS
Created attachment 31888 [details] dmesg output for drm-radeon-testing KMS
From #radeon: [17:38] <rah> Dec 9 16:59:22 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 [17:38] <rah> Dec 9 16:59:22 myrtle kernel: [drm] in favor of DVI-I-1 [17:41] <agd5f> rah: that dac drives both the analog portion of the DVI port and the TV connector
With latest drm-radeon-testing (commit b7ca68719ff3912915bf16547548d162c0d0c526) I get lots of errors like below while trying to switch the TV on. Note that the TV will come on in NTSC mode, ignoring the "tv standard" property. When changing the "tv standard" property while the display is on, the signal disappears and does not return. Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: executing set crtc timing Jan 31 12:29:14 myrtle kernel: [drm] TV-11: set mode 1280x1024 2d Jan 31 12:29:14 myrtle kernel: executing set crtc timing Jan 31 12:29:14 myrtle kernel: [drm] TMDS-15: set mode 1920x1200 2e Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1 Jan 31 12:29:14 myrtle kernel: [drm] 2: conflicting encoders switching off 9-pin DIN-1 Jan 31 12:29:14 myrtle kernel: [drm] in favor of DVI-I-1
Created attachment 34913 [details] Register dump of working state
Created attachment 34914 [details] Register dump of broken state
Created attachment 34915 [details] Log of which registers are modified in order to fix VGA output
Using avivotool to find registers that differ between the working and broken states, I've managed to reliably get the VGA output to work again after turning off the TV output. While setting all of the differing registers to their value from the working state, the VGA output starts working properly when register 0x4f4 is set (to value 0x0 from value 0x80000062.) Setting this register alone does not fix the VGA output. Also, the ordering in which the registers are set is significant; I have set the registers in reverse order and the VGA output is not fixed. Attached are dumps of registers in the working and broken states and a log of the output of avivotool while fixing the VGA output. The log shows which registers are set to which value and the order in which they are set.
Created attachment 34925 [details] [review] properly disable the tv encoder when VGA is used. This patch should fix things.
Created attachment 34926 [details] [review] ddx patch for ums This patch should fix UMS.
Created attachment 34927 [details] [review] fix UMS updated ums patch.
Created attachment 34928 [details] [review] fix KMS Updated KMS patch.
(In reply to comment #19) > Created an attachment (id=34928) [details] > fix KMS > > Updated KMS patch. Yes, this fixes the VGA output. However, I would note that the VGA monitor displays a message that says the input signal is out of range, rather the monitor going to sleep (which is what happens when xrandr --off is run.) Evidently there is a similar problem with the VGA output not being disabled properly when the TV output is enabled.
Created attachment 34958 [details] Xorg log for UMS with git DDX
(In reply to comment #18) > Created an attachment (id=34927) [details] > fix UMS > > updated ums patch. This patch does not work; the VGA output is not enabled. Also, with DDX from git (commit 878814aeab7031ff6169fcaf2be869b7595c8699,) using a vanilla 2.6.33 kernel, the xrandr property "tv_standard" no longer works, similarly to bug 26582. This is a regression from 6.12.6 which works fine. I've attached the X log.
(In reply to comment #20) > Yes, this fixes the VGA output. > Good. I'll push that upstream. > However, I would note that the VGA monitor displays a message that says the > input signal is out of range, rather the monitor going to sleep (which is what > happens when xrandr --off is run.) Evidently there is a similar problem with > the VGA output not being disabled properly when the TV output is enabled. There's only one DAC connected to both the DVI and TV connectors, so there's no way to turn off one connector without turning off the other. (In reply to comment #22) > > This patch does not work; the VGA output is not enabled. > Should be fixed in 22a46dddd375b2b9399e12fdf168fa5292ff17a4
(In reply to comment #23) > (In reply to comment #22) > > > > This patch does not work; the VGA output is not enabled. > > > > Should be fixed in 22a46dddd375b2b9399e12fdf168fa5292ff17a4 With DDX up to that commit, the PAL output is fixed but unfortunately, the VGA output isn't; it's still not enabled.
(In reply to comment #24) > With DDX up to that commit, the PAL output is fixed but unfortunately, the VGA > output isn't; it's still not enabled. You mean it's still screwed up after having used tv-out or something else?
Created attachment 34975 [details] Register dump of UMS working state
Created attachment 34976 [details] Register dump of UMS broken state
(In reply to comment #25) > (In reply to comment #24) > > With DDX up to that commit, the PAL output is fixed but unfortunately, the VGA > > output isn't; it's still not enabled. > > You mean it's still screwed up after having used tv-out or something else? After having used tv-out. To reiterate, this is what I'm doing: X starts with the DVI and VGA outputs enabled. I disable the VGA output and enable the TV output. I then disable the TV output and enable the VGA output. X believes that the VGA display is enabled (the desktop adjusts itself to having more space) but the monitor just says "the input signal is out of range." I've attached register dumps in the working state (after startup, before disabling the VGA output) and broken state (after disabling the TV output and trying to enable the VGA output.)
Mass closure: This bug has been untouched for more than six years, and is not obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.
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.