Stephan Kulow 2014-10-15 14:19:28 +00:00 committed by Git OBS Bridge
commit d44cf2f691
5 changed files with 28 additions and 86 deletions

View File

@ -1,78 +0,0 @@
From c4ae0e2cbcc0e2ebf9f13ee92d59b5120254a1dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
Date: Mon, 30 Jun 2014 10:20:12 +0900
Subject: [PATCH] Handle CRTC DPMS from output DPMS hooks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes at least two issues:
The CRTC DPMS hook isn't called after a modeset, so the vertical blank
interrupt emulation code considered the CRTC disabled after a modeset. As
a side effect, page flipping was no longer used after a modeset.
This change also makes sure the vertical blank interrupt emulation code
runs before the hardware CRTC is disabled and after it's enabled from the
output DPMS hook. The wrong order could cause gnome-shell to hang after
a suspend/resume and/or DPMS off/on cycle.
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
---
src/drmmode_display.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index bd8e701..c366203 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -247,7 +247,7 @@ int drmmode_get_current_ust(int drm_fd, CARD64 *ust)
}
static void
-drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
+drmmode_do_crtc_dpms(xf86CrtcPtr crtc, int mode)
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
ScrnInfoPtr scrn = crtc->scrn;
@@ -308,6 +308,12 @@ drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
drmmode_crtc->dpms_mode = mode;
}
+static void
+drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
+{
+ /* Nothing to do. drmmode_do_crtc_dpms() is called as appropriate */
+}
+
static PixmapPtr
create_pixmap_for_fbcon(drmmode_ptr drmmode,
ScrnInfoPtr pScrn, int fbcon_id)
@@ -973,9 +979,14 @@ drmmode_output_dpms(xf86OutputPtr output, int mode)
drmModeConnectorPtr koutput = drmmode_output->mode_output;
drmmode_ptr drmmode = drmmode_output->drmmode;
+ if (mode != DPMSModeOn && output->crtc)
+ drmmode_do_crtc_dpms(output->crtc, mode);
+
drmModeConnectorSetProperty(drmmode->fd, koutput->connector_id,
drmmode_output->dpms_enum_id, mode);
- return;
+
+ if (mode == DPMSModeOn && output->crtc)
+ drmmode_do_crtc_dpms(output->crtc, mode);
}
@@ -1833,6 +1844,7 @@ Bool drmmode_set_desired_modes(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
/* Skip disabled CRTCs */
if (!crtc->enabled) {
+ drmmode_do_crtc_dpms(crtc, DPMSModeOff);
drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
0, 0, 0, NULL, 0, NULL);
continue;
--
1.8.4.5

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96230ca9859a2a3e347b7f37597b7b344e80b83f378d3a8463ab1ceb69df76d9
size 832763

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ec3e6f06b6cf9a40c72aafa3448aae8b034c80b37410ca9442d5cf6806e07936
size 809756

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Fri Oct 3 16:33:15 UTC 2014 - tobias.johannes.klausmann@mni.thm.de
- Update to version 7.5.0:
+ radeon: enable hawaii accel conditionally (v3)
+ radeon: fix warnings when building against older xservers
+ radeon/kms: add new CIK pci ids
+ radeon/kms: add new SI pci ids
+ radeon/kms: fix mullins pci id
+ radeon: require libdrm_radeon 2.4.58 for latest SI/CI pci ids
+ radeon: drop redundant radeon_drm.h includes
+ radeon: move RADEON_TILING_{MASK, LINEAR} from radeon_drm.h to radeon.h
+ radeon: drop radeon_drm.h
+ radeon: remove definitions already present in radeon_drm.h
+ glamor.hfigure: Include xorg-server.h before
+ Handle CRTC DPMS from output DPMS hooks
+ Add Emacs .dir-local.el file
+ radeon: fix a leak in radeon_vbo_get_bo()
+ radeon: fix build warnings regarding const qualifier
- Remove upstream patch:
U_Handle-CRTC-DPMS-from-output-DPMS-hooks.patch
-------------------------------------------------------------------
Fri Sep 12 08:49:31 UTC 2014 - sndirsch@suse.com

View File

@ -19,7 +19,7 @@
%define xserver_glamor 1
Name: xf86-video-ati
Version: 7.4.0
Version: 7.5.0
Release: 0
Summary: ATI video driver for the Xorg X server
License: MIT
@ -27,7 +27,6 @@ Group: System/X11/Servers/XF86_4
Url: http://xorg.freedesktop.org/
#http://xorg.freedesktop.org/releases/individual/driver/
Source0: %{name}-%{version}.tar.bz2
Patch0: U_Handle-CRTC-DPMS-from-output-DPMS-hooks.patch
BuildRequires: Mesa-devel
BuildRequires: autoconf >= 2.60
@ -36,12 +35,12 @@ BuildRequires: libtool
BuildRequires: pkg-config
BuildRequires: pkgconfig(fontsproto)
# Libdrm 2.4.36 needed for kms
BuildRequires: pkgconfig(libdrm) >= 2.4.36
BuildRequires: pkgconfig(libdrm) >= 2.4.58
# Glamor is new and we want that now
%if !%xserver_glamor
BuildRequires: pkgconfig(glamor) >= 0.3.1
%endif
BuildRequires: pkgconfig(libdrm_radeon) >= 2.4.36
BuildRequires: pkgconfig(libdrm_radeon) >= 2.4.58
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pciaccess) >= 0.8.0
BuildRequires: pkgconfig(randrproto)
@ -69,7 +68,6 @@ driver as appropriate.
%prep
%setup -q
%patch0 -p1
%build
autoreconf -fi