APPLIED: [Oneiric][SRU][PATCH 1/1] UBUNTU: SAUCE: drm/radeon/kms: Fix logic error in DP HPD handler

Tim Gardner tim.gardner at canonical.com
Tue Oct 4 17:26:17 UTC 2011


On 10/04/2011 10:32 AM, Leann Ogasawara wrote:
> BugLink: https://bugs.launchpad.net/bugs/860868
>
> == SRU Justification ==
> A regression was introduced in the v3.0.3 upstream stable update.  The
> bug reporter has a HD5770 card with 3 screens connected (1 monitor to
> DisplayPort-0, 1 monitor to the DVI-0, and a TV to the HDMI-0).  The
> screen connected to display port immediately goes black and reports "no
> signal".  To wake the screen again, they had to issue the command "xset
> dpms force suspend" which then wakes the screen connected to the display
> port.  The same thing also happens when turning the tv off.
>
> We narrowed down the 2 problematic patches introduced in v3.0.3.  I
> escalated the issue back to upstream stable as well as the author of the
> patches.  We were provided the following fix which has been tested and
> confirmed to resolve this regression.  It has been sent to upstream
> dri-devel and CC'd upstream stable but has not yet been applied.  As
> this resolves a regression, I think we should carry this as a SAUCE
> patch until it comes back down through stable.
>
> == Fix ==
> http://lists.freedesktop.org/archives/dri-devel/2011-October/014882.html
>
> == Test Case ==
> With the fix applied, turn tv on and off and confirm it does not
> interfere with other connected displays.
>
>  From 2826ac1eb77c3741265a115ef67a671f290dd5d0 Mon Sep 17 00:00:00 2001
> From: Alex Deucher<alexander.deucher at amd.com>
> Date: Fri, 30 Sep 2011 13:05:44 -0700
> Subject: [PATCH] UBUNTU: SAUCE: drm/radeon/kms: Fix logic error in DP HPD handler
>
> BugLink: https://bugs.launchpad.net/bugs/860868
>
> Only disable the pipe if the monitor is physically
> disconnected.  The previous logic also disabled the
> pipe if the link was trained.
>
> Fixes:
> https://bugs.freedesktop.org/show_bug.cgi?id=41248
>
> http://lists.freedesktop.org/archives/dri-devel/2011-October/014882.html
>
> Signed-off-by: Alex Deucher<alexander.deucher at amd.com>
> Cc: stable at kernel.org
>
> Signed-off-by: Leann Ogasawara<leann.ogasawara at canonical.com>
> ---
>   drivers/gpu/drm/radeon/radeon_connectors.c |    8 ++++----
>   1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
> index d1b36f8..05b8b2c 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -68,11 +68,11 @@ void radeon_connector_hotplug(struct drm_connector *connector)
>   	if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
>   		int saved_dpms = connector->dpms;
>
> -		if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)&&
> -		    radeon_dp_needs_link_train(radeon_connector))
> -			drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
> -		else
> +		/* Only turn off the display it it's physically disconnected */
> +		if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
>   			drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
> +		else if (radeon_dp_needs_link_train(radeon_connector))
> +			drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
>   		connector->dpms = saved_dpms;
>   	}
>   }


-- 
Tim Gardner tim.gardner at canonical.com




More information about the kernel-team mailing list