This is a note to let you know that I've just added the patch titled
drm/radeon: report disconnected for LVDS/eDP with PX if ddc fails
to the 3.17-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-radeon-report-disconnected-for-lvds-edp-with-px-if-ddc-fails.patch
and it can be found in the queue-3.17 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.
>From 1348579433566355e570008929daa09a0db64fd8 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Fri, 14 Nov 2014 12:08:34 -0500
Subject: drm/radeon: report disconnected for LVDS/eDP with PX if ddc fails
From: Alex Deucher <[email protected]>
commit 1348579433566355e570008929daa09a0db64fd8 upstream.
If ddc fails, presumably the i2c mux (and hopefully the signal
mux) are switched to the other GPU so don't fetch the edid from
the vbios so that the connector reports disconnected.
bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=904417
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/gpu/drm/radeon/radeon_connectors.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -322,6 +322,12 @@ static void radeon_connector_get_edid(st
}
if (!radeon_connector->edid) {
+ /* don't fetch the edid from the vbios if ddc fails and runpm is
+ * enabled so we report disconnected.
+ */
+ if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0))
+ return;
+
if (rdev->is_atom_bios) {
/* some laptops provide a hardcoded edid in rom for
LCDs */
if (((connector->connector_type ==
DRM_MODE_CONNECTOR_LVDS) ||
@@ -826,6 +832,8 @@ static int radeon_lvds_mode_valid(struct
static enum drm_connector_status
radeon_lvds_detect(struct drm_connector *connector, bool force)
{
+ struct drm_device *dev = connector->dev;
+ struct radeon_device *rdev = dev->dev_private;
struct radeon_connector *radeon_connector =
to_radeon_connector(connector);
struct drm_encoder *encoder = radeon_best_single_encoder(connector);
enum drm_connector_status ret = connector_status_disconnected;
@@ -842,7 +850,11 @@ radeon_lvds_detect(struct drm_connector
/* check if panel is valid */
if (native_mode->hdisplay >= 320 && native_mode->vdisplay >=
240)
ret = connector_status_connected;
-
+ /* don't fetch the edid from the vbios if ddc fails and runpm is
+ * enabled so we report disconnected.
+ */
+ if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm != 0))
+ ret = connector_status_disconnected;
}
/* check for edid as well */
@@ -1589,6 +1601,11 @@ radeon_dp_detect(struct drm_connector *c
/* check if panel is valid */
if (native_mode->hdisplay >= 320 &&
native_mode->vdisplay >= 240)
ret = connector_status_connected;
+ /* don't fetch the edid from the vbios if ddc fails and
runpm is
+ * enabled so we report disconnected.
+ */
+ if ((rdev->flags & RADEON_IS_PX) && (radeon_runtime_pm
!= 0))
+ ret = connector_status_disconnected;
}
/* eDP is always DP */
radeon_dig_connector->dp_sink_type =
CONNECTOR_OBJECT_ID_DISPLAYPORT;
Patches currently in stable-queue which might be from [email protected]
are
queue-3.17/sound-radeon-move-64-bit-msi-quirk-from-arch-to-driver.patch
queue-3.17/drm-radeon-disable-native-backlight-control-on-pre-r6xx-asics-v2.patch
queue-3.17/drm-radeon-report-disconnected-for-lvds-edp-with-px-if-ddc-fails.patch
queue-3.17/gpu-radeon-set-flag-to-indicate-broken-64-bit-msi.patch
queue-3.17/drm-radeon-fix-endian-swapping-in-vbios-fetch-for-tdp-table.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html