From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 46711] Monitor not turning on after DisplayPort re-plug in Xorg
Date: Sun, 11 Jan 2015 02:29:02 +0000
Message-ID:
References:
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1007381354=="
Return-path:
Received: from culpepper.freedesktop.org (unknown [131.252.210.165])
by gabe.freedesktop.org (Postfix) with ESMTP id 36A476E252
for ; Sat, 10 Jan 2015 18:29:02 -0800 (PST)
In-Reply-To:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: dri-devel@lists.freedesktop.org
List-Id: dri-devel@lists.freedesktop.org
--===============1007381354==
Content-Type: multipart/alternative; boundary="1420943342.2b2Ba0.32743"; charset="UTF-8"
--1420943342.2b2Ba0.32743
Date: Sun, 11 Jan 2015 02:29:01 +0000
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
https://bugs.freedesktop.org/show_bug.cgi?id=46711
--- Comment #21 from Branen Salmon ---
After some digging, the only differences I've been able to find between the
re-plug behavior under X (where the encoder sends no signal although the driver
thinks DPMS is ON), and the re-plug behavior under an fbdev (where the signal
returns after re-plug, as expected) are the following:
1. When the monitor is re-plugged and radeon_connector_hotplug is called,
connector->dpms is OFF in the fbdev case, but it's ON in the X case. This
means that radeon_connector_hotplug returns immediately when the monitor is
re-plugged under fbdev, and that the code in radeon_connector_hotplug is not
what's turning the encoder back on.
2. In the fbdev case, there are redundant calls to radeon_atom_encoder_dpms.
When unplugging, it's called six times with on=false, and when re-plugging,
it's called thrice, with on=false, on=true, and on=true. In the X case, it's
called only once per unplug/re-plug, with on=false and on=true, respectively.
3. In the fbdev case, drm_crtc_helper_set_config is called on re-plug, and it
calls some other functions, including radeon_encoder_set_active_device and
drm_crtc_helper_set_mode. (I realize that this may be a red herring, but
figure I should include it so that expert eyes may judge.)
drm_crtc_helper_set_config isn't called at all in the X case.
4. Forcing DPMS off with xset results in one call to
radeon_atom_encoder_dpms. Forcing DPMS on with xset results in one call to
radeon_atom_encoder_dpms and one (I think?) call to drm_crtc_helper_set_config.
(I'm not counting calls to encoders and connectors not connected to my monitor,
even though fbdev likes to traverse them all anytime something changes.)
It seems that drm_crtc_helper_set_config is doing something with the encoder
that radeon_connector_hotplug is not doing. This is my first time digging into
video code, so I have no idea what that might be. I'm going to take a break
from working on this for now, but will come back to it if no one else beats me
to it. :)
--
You are receiving this mail because:
You are the assignee for the bug.
--1420943342.2b2Ba0.32743
Date: Sun, 11 Jan 2015 02:29:02 +0000
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Comment # 21
on bug 46711
from Branen Salmon
After some digging, the only differences I've been able to find between the
re-plug behavior under X (where the encoder sends no signal although the driver
thinks DPMS is ON), and the re-plug behavior under an fbdev (where the signal
returns after re-plug, as expected) are the following:
1. When the monitor is re-plugged and radeon_connector_hotplug is called,
connector->dpms is OFF in the fbdev case, but it's ON in the X case. This
means that radeon_connector_hotplug returns immediately when the monitor is
re-plugged under fbdev, and that the code in radeon_connector_hotplug is not
what's turning the encoder back on.
2. In the fbdev case, there are redundant calls to radeon_atom_encoder_dpms.
When unplugging, it's called six times with on=false, and when re-plugging,
it's called thrice, with on=false, on=true, and on=true. In the X case, it's
called only once per unplug/re-plug, with on=false and on=true, respectively.
3. In the fbdev case, drm_crtc_helper_set_config is called on re-plug, and it
calls some other functions, including radeon_encoder_set_active_device and
drm_crtc_helper_set_mode. (I realize that this may be a red herring, but
figure I should include it so that expert eyes may judge.)
drm_crtc_helper_set_config isn't called at all in the X case.
4. Forcing DPMS off with xset results in one call to
radeon_atom_encoder_dpms. Forcing DPMS on with xset results in one call to
radeon_atom_encoder_dpms and one (I think?) call to drm_crtc_helper_set_config.
(I'm not counting calls to encoders and connectors not connected to my monitor,
even though fbdev likes to traverse them all anytime something changes.)
It seems that drm_crtc_helper_set_config is doing something with the encoder
that radeon_connector_hotplug is not doing. This is my first time digging into
video code, so I have no idea what that might be. I'm going to take a break
from working on this for now, but will come back to it if no one else beats me
to it. :)
You are receiving this mail because:
- You are the assignee for the bug.
--1420943342.2b2Ba0.32743--
--===============1007381354==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0
cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK
--===============1007381354==--