summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Cardona <remi@gentoo.org>2009-10-22 13:45:50 +0000
committerRémi Cardona <remi@gentoo.org>2009-10-22 13:45:50 +0000
commit251ccf8c3d9fdd24b9446f718bf93a054bff4047 (patch)
tree984bf5d7eb37bced5ae173e675c5f00f6fe91e78 /x11-drivers/xf86-video-intel/files
parentVersion bump (diff)
downloadgentoo-2-251ccf8c3d9fdd24b9446f718bf93a054bff4047.tar.gz
gentoo-2-251ccf8c3d9fdd24b9446f718bf93a054bff4047.tar.bz2
gentoo-2-251ccf8c3d9fdd24b9446f718bf93a054bff4047.zip
x11-drivers/xf86-video-intel: add patches from the 2.9 branch (should fix bug #289980)
(Portage version: 2.2_rc46/cvs/Linux i686)
Diffstat (limited to 'x11-drivers/xf86-video-intel/files')
-rw-r--r--x11-drivers/xf86-video-intel/files/2.9.0-0001-drmmode-with-1.7-server-set-mode-major-doesn-t-get-g.patch36
-rw-r--r--x11-drivers/xf86-video-intel/files/2.9.0-0002-uxa-Free-the-ScratchPixmapHeader-after-its-associate.patch39
-rw-r--r--x11-drivers/xf86-video-intel/files/2.9.0-0003-Drop-frontbuffer-from-crtc-in-I830CloseScreen.patch69
3 files changed, 144 insertions, 0 deletions
diff --git a/x11-drivers/xf86-video-intel/files/2.9.0-0001-drmmode-with-1.7-server-set-mode-major-doesn-t-get-g.patch b/x11-drivers/xf86-video-intel/files/2.9.0-0001-drmmode-with-1.7-server-set-mode-major-doesn-t-get-g.patch
new file mode 100644
index 000000000000..778156c8dcde
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.9.0-0001-drmmode-with-1.7-server-set-mode-major-doesn-t-get-g.patch
@@ -0,0 +1,36 @@
+From f858cbe246c5d3a788ae25551b49142c5cc91f1a Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Fri, 9 Oct 2009 14:16:06 +1000
+Subject: [PATCH 1/3] drmmode: with 1.7 server, set mode major doesn't get gamma setup.
+
+Noticed this on Fedora, where 1.7 server does gamma via the randr
+codepaths however kms doesn't have this call which happens in the
+non set_mode_major path.
+
+probably should be backported to released drivers.
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+(cherry picked from commit 8a77877f9c2c6a8a1308bc1a3be9e7ad88bc7f49)
+---
+ src/drmmode_display.c | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/src/drmmode_display.c b/src/drmmode_display.c
+index e8a6c01..7845fc5 100644
+--- a/src/drmmode_display.c
++++ b/src/drmmode_display.c
+@@ -363,6 +363,11 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
+ goto done;
+ #endif
+
++#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,7,0,0,0)
++ crtc->funcs->gamma_set(crtc, crtc->gamma_red, crtc->gamma_green,
++ crtc->gamma_blue, crtc->gamma_size);
++#endif
++
+ drmmode_ConvertToKMode(crtc->scrn, &kmode, mode);
+
+
+--
+1.6.5.1
+
diff --git a/x11-drivers/xf86-video-intel/files/2.9.0-0002-uxa-Free-the-ScratchPixmapHeader-after-its-associate.patch b/x11-drivers/xf86-video-intel/files/2.9.0-0002-uxa-Free-the-ScratchPixmapHeader-after-its-associate.patch
new file mode 100644
index 000000000000..bed377023963
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.9.0-0002-uxa-Free-the-ScratchPixmapHeader-after-its-associate.patch
@@ -0,0 +1,39 @@
+From 7ccf084b7a281d8aa877f91401d3df7192da408c Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon, 12 Oct 2009 14:33:08 +0100
+Subject: [PATCH 2/3] uxa: Free the ScratchPixmapHeader after its associated Picture
+
+Fixes: http://bugs.freedesktop.org/show_bug.cgi?id=24459
+Intel Driver > 2.8: Cairo rendering bug, triggered in QtCurve GTK engine
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+(cherry picked from commit 7e8f32d0a7279dce1976f87612833d9092554cfe)
+---
+ uxa/uxa-render.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
+index 4850185..bf1460f 100644
+--- a/uxa/uxa-render.c
++++ b/uxa/uxa-render.c
+@@ -360,8 +360,8 @@ uxa_picture_from_a1_pixman_image (ScreenPtr pScreen,
+ pSrc = CreatePicture (0, &pPixmap->drawable,
+ PictureMatchFormat (pScreen, 1, PICT_a1),
+ 0, 0, serverClient, &error);
+- FreeScratchPixmapHeader (pPixmap);
+ if (!pSrc) {
++ FreeScratchPixmapHeader (pPixmap);
+ FreePicture (pPicture, 0);
+ return 0;
+ }
+@@ -373,6 +373,7 @@ uxa_picture_from_a1_pixman_image (ScreenPtr pScreen,
+ width, height);
+
+ FreePicture (pSrc, 0);
++ FreeScratchPixmapHeader (pPixmap);
+
+ return pPicture;
+ }
+--
+1.6.5.1
+
diff --git a/x11-drivers/xf86-video-intel/files/2.9.0-0003-Drop-frontbuffer-from-crtc-in-I830CloseScreen.patch b/x11-drivers/xf86-video-intel/files/2.9.0-0003-Drop-frontbuffer-from-crtc-in-I830CloseScreen.patch
new file mode 100644
index 000000000000..b481525c0ff5
--- /dev/null
+++ b/x11-drivers/xf86-video-intel/files/2.9.0-0003-Drop-frontbuffer-from-crtc-in-I830CloseScreen.patch
@@ -0,0 +1,69 @@
+From 22b85d0198508a13273ab58fd5fa3a127880a0be Mon Sep 17 00:00:00 2001
+From: Albert Damen <albrt@gmx.net>
+Date: Wed, 7 Oct 2009 21:55:42 +0200
+Subject: [PATCH 3/3] Drop frontbuffer from crtc in I830CloseScreen
+
+By dropping the frontbuffer from the crtc, the new frontbuffer
+can be properly added to the crtc when the xserver is reset.
+
+Signed-off-by: Albert Damen <albrt@gmx.net>
+(cherry picked from commit fcc2ee48b866b81c79315ff10189b56fc201539d)
+
+Fixes https://bugs.freedesktop.org/show_bug.cgi?id=24383
+---
+ src/drmmode_display.c | 15 +++++++++++++++
+ src/i830.h | 1 +
+ src/i830_driver.c | 2 ++
+ 3 files changed, 18 insertions(+), 0 deletions(-)
+
+diff --git a/src/drmmode_display.c b/src/drmmode_display.c
+index 7845fc5..8ab8a4b 100644
+--- a/src/drmmode_display.c
++++ b/src/drmmode_display.c
+@@ -1420,3 +1420,18 @@ drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc)
+
+ return drm_intel_get_pipe_from_crtc_id (bufmgr, drmmode_crtc->mode_crtc->crtc_id);
+ }
++
++void drmmode_closefb(ScrnInfoPtr scrn)
++{
++ xf86CrtcConfigPtr xf86_config;
++ drmmode_crtc_private_ptr drmmode_crtc;
++ drmmode_ptr drmmode;
++
++ xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
++
++ drmmode_crtc = xf86_config->crtc[0]->driver_private;
++ drmmode = drmmode_crtc->drmmode;
++
++ drmModeRmFB(drmmode->fd, drmmode->fb_id);
++ drmmode->fb_id = 0;
++}
+diff --git a/src/i830.h b/src/i830.h
+index 009641a..9d9335b 100644
+--- a/src/i830.h
++++ b/src/i830.h
+@@ -692,6 +692,7 @@ void I830DRI2CloseScreen(ScreenPtr pScreen);
+
+ extern Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
+ extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
++extern void drmmode_closefb(ScrnInfoPtr scrn);
+ extern int drmmode_output_dpms_status(xf86OutputPtr output);
+ void
+ drmmode_crtc_set_cursor_bo(xf86CrtcPtr crtc, dri_bo *cursor);
+diff --git a/src/i830_driver.c b/src/i830_driver.c
+index 316a1fa..b2b1cb1 100644
+--- a/src/i830_driver.c
++++ b/src/i830_driver.c
+@@ -3079,6 +3079,8 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
+ }
+ if (pI830->front_buffer) {
+ i830_set_pixmap_bo(pScreen->GetScreenPixmap(pScreen), NULL);
++ if (pI830->use_drm_mode)
++ drmmode_closefb(pScrn);
+ i830_free_memory(pScrn, pI830->front_buffer);
+ pI830->front_buffer = NULL;
+ }
+--
+1.6.5.1
+