diff options
author | Rémi Cardona <remi@gentoo.org> | 2009-10-22 13:45:50 +0000 |
---|---|---|
committer | Rémi Cardona <remi@gentoo.org> | 2009-10-22 13:45:50 +0000 |
commit | 251ccf8c3d9fdd24b9446f718bf93a054bff4047 (patch) | |
tree | 984bf5d7eb37bced5ae173e675c5f00f6fe91e78 /x11-drivers/xf86-video-intel/files | |
parent | Version bump (diff) | |
download | gentoo-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')
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 + |