[xorg-x11-drv-intel/f12/master] merge f13
Adam Jackson
ajax at fedoraproject.org
Mon Aug 30 17:37:27 UTC 2010
commit ffcab5110c07404b706b4a0e863aa2aa61e7bd99
Author: Adam Jackson <ajax at redhat.com>
Date: Mon Aug 30 13:37:14 2010 -0400
merge f13
.gitignore | 2 +
copy-fb.patch | 125 ++++++++++++++--------------------
intel-2.10.0-add-mbp-backlight.patch | 12 +++
intel-2.11-lvds-first.patch | 36 ++++++++++
intel-2.11-no-pageflipping.patch | 33 +++++++++
intel-2.11.0-vga-clock-max.patch | 16 ++++
intel-2.12-fix-uxa-planemask.patch | 40 +++++++++++
intel-2.8.0-lvds-first.patch | 25 ++++---
sources | 4 +-
uevent.patch | 103 ++++++++++++++--------------
xorg-x11-drv-intel.spec | 94 +++++++++++++++++++++----
11 files changed, 337 insertions(+), 153 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index d1b046b..4a4721c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
xf86-video-intel-2.9.0.tar.bz2
intel-gpu-tools-20090908.tar.bz2
+xf86-video-intel-2.9.1.tar.bz2
+xf86-video-intel-2.10.0.tar.bz2
diff --git a/copy-fb.patch b/copy-fb.patch
index 2936cd7..df1e589 100644
--- a/copy-fb.patch
+++ b/copy-fb.patch
@@ -1,6 +1,6 @@
-diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/src/drmmode_display.c
---- xf86-video-intel-2.9.1/src/drmmode_display.c.jx 2009-10-26 10:52:16.000000000 -0400
-+++ xf86-video-intel-2.9.1/src/drmmode_display.c 2009-10-26 10:52:34.000000000 -0400
+diff -up xf86-video-intel-2.10.0/src/drmmode_display.c.jx xf86-video-intel-2.10.0/src/drmmode_display.c
+--- xf86-video-intel-2.10.0/src/drmmode_display.c.jx 2010-02-08 11:23:25.000000000 -0500
++++ xf86-video-intel-2.10.0/src/drmmode_display.c 2010-02-08 11:23:46.000000000 -0500
@@ -35,6 +35,8 @@
#include <unistd.h>
#include <errno.h>
@@ -10,30 +10,7 @@ diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/
#include "xorgVersion.h"
#include "i830.h"
-@@ -315,7 +317,7 @@ drmmode_set_mode_major(xf86CrtcPtr crtc,
- unsigned int pitch = pScrn->displayWidth * pI830->cpp;
-
- if (drmmode->fb_id == 0) {
-- ret = drmModeAddFB(drmmode->fd,
-+ ret = drmModeAddFB(drmmode->fd,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->depth, pScrn->bitsPerPixel,
- pitch, pI830->front_buffer->bo->handle,
-@@ -922,6 +924,13 @@ drmmode_output_dpms(xf86OutputPtr output
- drmmode_ptr drmmode = drmmode_output->drmmode;
- int i;
- drmModePropertyPtr props;
-+ I830Ptr pI830 = I830PTR(output->scrn);
-+
-+ /* xf86Crtc.c calls dpms off in set desired modes, so ignore
-+ * the request if we're starting up. */
-+
-+ if (pI830->starting)
-+ return;
-
- for (i = 0; i < koutput->count_props; i++) {
- props = drmModeGetProperty(drmmode->fd, koutput->props[i]);
-@@ -1373,6 +1382,8 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scr
+@@ -1375,6 +1377,8 @@ drmmode_xf86crtc_resize (ScrnInfoPtr scr
if (old_front)
i830_free_memory(scrn, old_front);
@@ -42,27 +19,27 @@ diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/
return TRUE;
fail:
-@@ -1412,6 +1423,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn,
+@@ -1414,6 +1418,7 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
return FALSE;
}
-+ pScrn->canDoBGNoneRoot = TRUE;
- xf86CrtcSetSizeRange(pScrn, 320, 200, drmmode->mode_res->max_width,
++ scrn->canDoBGNoneRoot = TRUE;
+ xf86CrtcSetSizeRange(scrn, 320, 200, drmmode->mode_res->max_width,
drmmode->mode_res->max_height);
for (i = 0; i < drmmode->mode_res->count_crtcs; i++)
-@@ -1447,3 +1459,98 @@ void drmmode_closefb(ScrnInfoPtr scrn)
+@@ -1458,3 +1463,98 @@ void drmmode_closefb(ScrnInfoPtr scrn)
drmModeRmFB(drmmode->fd, drmmode->fb_id);
drmmode->fb_id = 0;
}
+
+static PixmapPtr
-+drmmode_create_pixmap_for_fbcon(ScrnInfoPtr pScrn)
++drmmode_create_pixmap_for_fbcon(ScrnInfoPtr scrn)
+{
-+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
++ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+ drmmode_crtc_private_ptr drmmode_crtc = xf86_config->crtc[0]->driver_private;
-+ ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
++ ScreenPtr pScreen = screenInfo.screens[scrn->scrnIndex];
+ drmmode_ptr drmmode = drmmode_crtc->drmmode;
-+ I830Ptr pI830 = I830PTR(pScrn);
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+ drmModeFBPtr fbcon;
+ struct drm_gem_flink flink;
+ drm_intel_bo *bo;
@@ -83,15 +60,15 @@ diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/
+
+ flink.handle = fbcon->handle;
+ if (ioctl(drmmode->fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Couldn't flink fbcon handle\n");
+ return NULL;
+ }
+
-+ bo = drm_intel_bo_gem_create_from_name(pI830->bufmgr,
++ bo = drm_intel_bo_gem_create_from_name(intel->bufmgr,
+ "fbcon", flink.name);
+ if (bo == NULL) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Couldn't allocate bo for fbcon handle\n");
+ return NULL;
+ }
@@ -101,7 +78,7 @@ diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/
+ fbcon->depth, fbcon->bpp,
+ fbcon->pitch, NULL);
+ if (pixmap == NULL) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Couldn't allocate pixmap fbcon contents\n");
+ return NULL;
+ }
@@ -113,62 +90,62 @@ diff -up xf86-video-intel-2.9.1/src/drmmode_display.c.jx xf86-video-intel-2.9.1/
+ return pixmap;
+}
+
-+void drmmode_copy_fb(ScrnInfoPtr pScrn)
++void drmmode_copy_fb(ScrnInfoPtr scrn)
+{
-+ ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
-+ I830Ptr pI830 = I830PTR(pScrn);
++ ScreenPtr pScreen = screenInfo.screens[scrn->scrnIndex];
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+ PixmapPtr src, dst;
-+ unsigned int pitch = pScrn->displayWidth * pI830->cpp;
++ unsigned int pitch = scrn->displayWidth * intel->cpp;
+
-+ src = drmmode_create_pixmap_for_fbcon(pScrn);
++ src = drmmode_create_pixmap_for_fbcon(scrn);
+ if (src == NULL) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "Couldn't create pixmap for fbcon\n");
+ return;
+ }
+
+ /* We dont have a screen Pixmap yet */
+ dst = GetScratchPixmapHeader(pScreen,
-+ pScrn->virtualX, pScrn->virtualY,
-+ pScrn->depth, pScrn->bitsPerPixel,
++ scrn->virtualX, scrn->virtualY,
++ scrn->depth, scrn->bitsPerPixel,
+ pitch,
+ NULL);
-+ i830_set_pixmap_bo(dst, pI830->front_buffer->bo);
++ i830_set_pixmap_bo(dst, intel->front_buffer->bo);
+
-+ pI830->uxa_driver->prepare_copy(src, dst, -1, -1, GXcopy, FB_ALLONES);
++ intel->uxa_driver->prepare_copy(src, dst, -1, -1, GXcopy, FB_ALLONES);
+
-+ pI830->uxa_driver->copy(dst, 0, 0, 0, 0,
-+ pScrn->virtualX, pScrn->virtualY);
++ intel->uxa_driver->copy(dst, 0, 0, 0, 0,
++ scrn->virtualX, scrn->virtualY);
+
-+ pI830->uxa_driver->done_copy(dst);
++ intel->uxa_driver->done_copy(dst);
+
-+ I830EmitFlush(pScrn);
-+ intel_batch_flush(pScrn, TRUE);
++ /* I830EmitFlush(scrn); */
++ intel_batch_submit(scrn);
+
+ (*pScreen->DestroyPixmap)(src);
+ (*pScreen->DestroyPixmap)(dst);
+}
+
-diff -up xf86-video-intel-2.9.1/src/i830_driver.c.jx xf86-video-intel-2.9.1/src/i830_driver.c
---- xf86-video-intel-2.9.1/src/i830_driver.c.jx 2009-10-26 07:48:05.000000000 -0400
-+++ xf86-video-intel-2.9.1/src/i830_driver.c 2009-10-26 10:52:34.000000000 -0400
-@@ -3014,6 +3014,8 @@ I830EnterVT(int scrnIndex, int flags)
- /* Clear the framebuffer */
- memset(pI830->FbBase + pScrn->fbOffset, 0,
- pScrn->virtualY * pScrn->displayWidth * pI830->cpp);
-+ } else {
-+ drmmode_copy_fb(pScrn);
- }
+diff -up xf86-video-intel-2.10.0/src/i830_driver.c.jx xf86-video-intel-2.10.0/src/i830_driver.c
+--- xf86-video-intel-2.10.0/src/i830_driver.c.jx 2010-01-04 17:09:52.000000000 -0500
++++ xf86-video-intel-2.10.0/src/i830_driver.c 2010-02-08 11:23:46.000000000 -0500
+@@ -1507,6 +1507,8 @@ static Bool I830EnterVT(int scrnIndex, i
+ if (IS_I965G(intel))
+ gen4_render_state_init(scrn);
+
++ drmmode_copy_fb(scrn);
++
+ if (!xf86SetDesiredModes(scrn))
+ return FALSE;
- if (!xf86SetDesiredModes (pScrn))
-diff -up xf86-video-intel-2.9.1/src/i830.h.jx xf86-video-intel-2.9.1/src/i830.h
---- xf86-video-intel-2.9.1/src/i830.h.jx 2009-10-26 07:48:05.000000000 -0400
-+++ xf86-video-intel-2.9.1/src/i830.h 2009-10-26 10:52:34.000000000 -0400
-@@ -694,6 +694,7 @@ extern Bool drmmode_pre_init(ScrnInfoPtr
- extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc);
- extern void drmmode_closefb(ScrnInfoPtr scrn);
+diff -up xf86-video-intel-2.10.0/src/i830.h.jx xf86-video-intel-2.10.0/src/i830.h
+--- xf86-video-intel-2.10.0/src/i830.h.jx 2010-01-04 17:09:52.000000000 -0500
++++ xf86-video-intel-2.10.0/src/i830.h 2010-02-08 11:23:46.000000000 -0500
+@@ -430,6 +430,7 @@ extern void drmmode_closefb(ScrnInfoPtr
+ extern int drmmode_get_pipe_from_crtc_id(drm_intel_bufmgr * bufmgr,
+ xf86CrtcPtr crtc);
extern int drmmode_output_dpms_status(xf86OutputPtr output);
-+extern void drmmode_copy_fb(ScrnInfoPtr pScrn);
- void
- drmmode_crtc_set_cursor_bo(xf86CrtcPtr crtc, dri_bo *cursor);
++extern void drmmode_copy_fb(ScrnInfoPtr scrn);
+ extern int drmmode_crtc_id(xf86CrtcPtr crtc);
+ void drmmode_crtc_set_cursor_bo(xf86CrtcPtr crtc, dri_bo * cursor);
diff --git a/intel-2.10.0-add-mbp-backlight.patch b/intel-2.10.0-add-mbp-backlight.patch
new file mode 100644
index 0000000..ddaab89
--- /dev/null
+++ b/intel-2.10.0-add-mbp-backlight.patch
@@ -0,0 +1,12 @@
+Index: xf86-video-intel-2.11.0/src/drmmode_display.c
+===================================================================
+--- xf86-video-intel-2.11.0/src/drmmode_display.c
++++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-29 00:18:34.000000000 +0200
+@@ -103,6 +103,7 @@
+ "asus-laptop",
+ "eeepc",
+ "thinkpad_screen",
++ "mbp_backlight",
+ "acpi_video1",
+ "acpi_video0",
+ "fujitsu-laptop",
diff --git a/intel-2.11-lvds-first.patch b/intel-2.11-lvds-first.patch
new file mode 100644
index 0000000..3177b0b
--- /dev/null
+++ b/intel-2.11-lvds-first.patch
@@ -0,0 +1,36 @@
+diff -up xf86-video-intel-20100319/src/drmmode_display.c.jx xf86-video-intel-20100319/src/drmmode_display.c
+--- xf86-video-intel-20100319/src/drmmode_display.c.jx 2010-03-22 13:24:13.483183499 -0400
++++ xf86-video-intel-20100319/src/drmmode_display.c 2010-03-22 13:25:59.810184060 -0400
+@@ -1452,7 +1452,7 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ struct drm_i915_getparam gp;
+ drmmode_ptr drmmode;
+- unsigned int i;
++ unsigned int i, lvds = -1;
+ int has_flipping = 0;
+
+ drmmode = xnfalloc(sizeof *drmmode);
+@@ -1473,9 +1473,22 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
+ drmmode->mode_res->max_height);
+ for (i = 0; i < drmmode->mode_res->count_crtcs; i++)
+ drmmode_crtc_init(scrn, drmmode, i);
++
++ /* do LVDS first */
++ for (i = 0; i < drmmode->mode_res->count_connectors; i++) {
++ drmModeConnectorPtr koutput =
++ drmModeGetConnector(drmmode->fd,
++ drmmode->mode_res->connectors[i]);
++ if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) {
++ drmmode_output_init(scrn, drmmode, i);
++ lvds = i;
++ }
++ drmModeFreeConnector(koutput);
++ }
+
+ for (i = 0; i < drmmode->mode_res->count_connectors; i++)
+- drmmode_output_init(scrn, drmmode, i);
++ if (i != lvds)
++ drmmode_output_init(scrn, drmmode, i);
+
+ xf86InitialConfiguration(scrn, TRUE);
+
diff --git a/intel-2.11-no-pageflipping.patch b/intel-2.11-no-pageflipping.patch
new file mode 100644
index 0000000..39500e2
--- /dev/null
+++ b/intel-2.11-no-pageflipping.patch
@@ -0,0 +1,33 @@
+diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip xf86-video-intel-2.11.0/src/drmmode_display.c
+--- xf86-video-intel-2.11.0/src/drmmode_display.c.no-flip 2010-05-03 15:30:19.000000000 -0400
++++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-05-03 15:30:59.000000000 -0400
+@@ -1504,10 +1504,15 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
+ gp.value = &has_flipping;
+ (void)drmCommandWriteRead(intel->drmSubFD, DRM_I915_GETPARAM, &gp,
+ sizeof(gp));
++
++ xf86DrvMsg(scrn->scrnIndex, X_INFO,
++ "Pageflipping %s in kernel, %s disabled in X\n",
++ has_flipping ? "enabled" : "disabled",
++ has_flipping ? "but" : "and");
+ if (has_flipping) {
+ xf86DrvMsg(scrn->scrnIndex, X_INFO,
+- "Kernel page flipping support detected, enabling\n");
+- intel->use_pageflipping = TRUE;
++ "Don't panic: https://bugzilla.redhat.com/588421\n");
++ intel->use_pageflipping = FALSE;
+ drmmode->flip_count = 0;
+ drmmode->event_context.version = DRM_EVENT_CONTEXT_VERSION;
+ drmmode->event_context.vblank_handler = drmmode_vblank_handler;
+diff -up xf86-video-intel-2.11.0/src/i830_dri.c.no-flip xf86-video-intel-2.11.0/src/i830_dri.c
+--- xf86-video-intel-2.11.0/src/i830_dri.c.no-flip 2010-03-29 14:23:02.000000000 -0400
++++ xf86-video-intel-2.11.0/src/i830_dri.c 2010-05-03 15:30:19.000000000 -0400
+@@ -1013,7 +1013,7 @@ Bool I830DRI2ScreenInit(ScreenPtr screen
+
+ info.CopyRegion = I830DRI2CopyRegion;
+ #if DRI2INFOREC_VERSION >= 4
+- if (intel->use_pageflipping) {
++ if (intel->use_pageflipping || 1) {
+ info.version = 4;
+ info.ScheduleSwap = I830DRI2ScheduleSwap;
+ info.GetMSC = I830DRI2GetMSC;
diff --git a/intel-2.11.0-vga-clock-max.patch b/intel-2.11.0-vga-clock-max.patch
new file mode 100644
index 0000000..80eeb07
--- /dev/null
+++ b/intel-2.11.0-vga-clock-max.patch
@@ -0,0 +1,16 @@
+diff -up xf86-video-intel-2.11.0/src/drmmode_display.c.jx xf86-video-intel-2.11.0/src/drmmode_display.c
+--- xf86-video-intel-2.11.0/src/drmmode_display.c.jx 2010-04-16 10:28:08.000000000 -0400
++++ xf86-video-intel-2.11.0/src/drmmode_display.c 2010-04-26 15:28:58.000000000 -0400
+@@ -689,6 +689,12 @@ drmmode_output_mode_valid(xf86OutputPtr
+ else
+ return MODE_OK;
+ }
++
++ /* I don't actually believe any VGA is this good */
++ if (koutput->connector_type == DRM_MODE_CONNECTOR_VGA)
++ if (pModes->Clock > 250000)
++ return MODE_CLOCK_HIGH;
++
+ return MODE_OK;
+ }
+
diff --git a/intel-2.12-fix-uxa-planemask.patch b/intel-2.12-fix-uxa-planemask.patch
new file mode 100644
index 0000000..eb89433
--- /dev/null
+++ b/intel-2.12-fix-uxa-planemask.patch
@@ -0,0 +1,40 @@
+From feff2ec80eeeba5074d19efcddf4867adf639b4f Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at redhat.com>
+Date: Mon, 5 Jul 2010 09:07:08 +1000
+Subject: [PATCH] uxa: don't compare planemask with FB_ALLONES.
+
+planemask is an unsigned long initialised to ~0, on 64-bit this is not equal
+to an (unsigned int)-1.
+
+Use the macro provided to do this.
+
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+---
+ uxa/uxa-accel.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
+index ded66a1..633b433 100644
+--- a/uxa/uxa-accel.c
++++ b/uxa/uxa-accel.c
+@@ -81,7 +81,7 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
+ if (!dst_pixmap)
+ goto fallback;
+
+- if (pGC->alu != GXcopy || pGC->planemask != FB_ALLONES)
++ if (pGC->alu != GXcopy || !UXA_PM_IS_SOLID(pDrawable, pGC->planemask))
+ goto solid;
+
+ format = PictureMatchFormat(screen,
+@@ -1048,7 +1048,7 @@ uxa_fill_region_solid(DrawablePtr pDrawable,
+ extents = REGION_EXTENTS(screen, pRegion);
+
+ /* Using GEM, the relocation costs outweigh the advantages of the blitter */
+- if (nbox == 1 || (alu != GXcopy && alu != GXclear) || planemask != FB_ALLONES) {
++ if (nbox == 1 || (alu != GXcopy && alu != GXclear) || !UXA_PM_IS_SOLID(&pixmap->drawable, planemask)) {
+ try_solid:
+ if (uxa_screen->info->check_solid &&
+ !uxa_screen->info->check_solid(&pixmap->drawable, alu, planemask))
+--
+1.7.1
+
diff --git a/intel-2.8.0-lvds-first.patch b/intel-2.8.0-lvds-first.patch
index 7f843a3..ff2ff43 100644
--- a/intel-2.8.0-lvds-first.patch
+++ b/intel-2.8.0-lvds-first.patch
@@ -1,7 +1,7 @@
-diff -up xf86-video-intel-2.8.0/src/drmmode_display.c.jx xf86-video-intel-2.8.0/src/drmmode_display.c
---- xf86-video-intel-2.8.0/src/drmmode_display.c.jx 2009-07-28 14:10:36.000000000 -0400
-+++ xf86-video-intel-2.8.0/src/drmmode_display.c 2009-07-28 14:20:10.000000000 -0400
-@@ -1131,7 +1131,7 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn,
+diff -up xf86-video-intel-2.10.0/src/drmmode_display.cda xf86-video-intel-2.10.0/src/drmmode_display.c
+--- xf86-video-intel-2.10.0/src/drmmode_display.cda 2010-01-13 18:45:02.000000000 +1000
++++ xf86-video-intel-2.10.0/src/drmmode_display.c 2010-01-13 18:46:22.000000000 +1000
+@@ -1419,7 +1419,7 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
{
xf86CrtcConfigPtr xf86_config;
drmmode_ptr drmmode;
@@ -10,26 +10,27 @@ diff -up xf86-video-intel-2.8.0/src/drmmode_display.c.jx xf86-video-intel-2.8.0/
drmmode = xnfalloc(sizeof *drmmode);
drmmode->fd = fd;
-@@ -1153,8 +1153,21 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn,
+@@ -1441,9 +1441,22 @@ Bool drmmode_pre_init(ScrnInfoPtr scrn,
+ drmmode->mode_res->max_height);
for (i = 0; i < drmmode->mode_res->count_crtcs; i++)
- drmmode_crtc_init(pScrn, drmmode, i);
-
+ drmmode_crtc_init(scrn, drmmode, i);
++
+ /* do LVDS first */
+ for (i = 0; i < drmmode->mode_res->count_connectors; i++) {
+ drmModeConnectorPtr koutput =
+ drmModeGetConnector(drmmode->fd,
+ drmmode->mode_res->connectors[i]);
+ if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) {
-+ drmmode_output_init(pScrn, drmmode, i);
++ drmmode_output_init(scrn, drmmode, i);
+ lvds = i;
+ }
+ drmModeFreeConnector(koutput);
+ }
-+
+
for (i = 0; i < drmmode->mode_res->count_connectors; i++)
-- drmmode_output_init(pScrn, drmmode, i);
+- drmmode_output_init(scrn, drmmode, i);
+ if (i != lvds)
-+ drmmode_output_init(pScrn, drmmode, i);
++ drmmode_output_init(scrn, drmmode, i);
- xf86InitialConfiguration(pScrn, TRUE);
+ xf86InitialConfiguration(scrn, TRUE);
diff --git a/sources b/sources
index 9adbfdb..c4c0e0c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-d64507d329cff1228f8a88ec2e9f58cb intel-gpu-tools-20090908.tar.bz2
-8951d0366c16991badb7f9050556f4f3 xf86-video-intel-2.9.1.tar.bz2
+8314def847dcdc4f2970e2d193054f96 xf86-video-intel-2.12.0.tar.bz2
+29d469beab04ee3ca8da86362b44a418 intel-gpu-tools-20100625.tar.bz2
diff --git a/uevent.patch b/uevent.patch
index 4a91dff..ab040fa 100644
--- a/uevent.patch
+++ b/uevent.patch
@@ -1,7 +1,7 @@
-diff -up xf86-video-intel-20090812/src/i830_driver.c.uevent xf86-video-intel-20090812/src/i830_driver.c
---- xf86-video-intel-20090812/src/i830_driver.c.uevent 2009-09-01 15:41:32.803946753 -0400
-+++ xf86-video-intel-20090812/src/i830_driver.c 2009-09-01 15:41:32.836946701 -0400
-@@ -84,6 +84,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff -up xf86-video-intel-2.12.0/src/i830_driver.c.uevent xf86-video-intel-2.12.0/src/i830_driver.c
+--- xf86-video-intel-2.12.0/src/i830_driver.c.uevent 2010-06-24 16:29:49.000000000 -0400
++++ xf86-video-intel-2.12.0/src/i830_driver.c 2010-06-25 11:40:01.335975581 -0400
+@@ -81,6 +81,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "i915_drm.h"
#include <xf86drmMode.h>
@@ -10,18 +10,18 @@ diff -up xf86-video-intel-20090812/src/i830_driver.c.uevent xf86-video-intel-200
#define BIT(x) (1 << (x))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define NB_OF(x) (sizeof (x) / sizeof (*x))
-@@ -2526,6 +2528,80 @@ i830_disable_render_standby(ScrnInfoPtr
- }
+@@ -996,6 +998,80 @@ int i830_crtc_to_pipe(xf86CrtcPtr crtc)
+ return drmmode_get_pipe_from_crtc_id(intel->bufmgr, crtc);
}
+static void
+I830HandleUEvents(int fd, void *closure)
+{
-+ ScrnInfoPtr pScrn = closure;
-+ I830Ptr pI830 = I830PTR(pScrn);
++ ScrnInfoPtr scrn = closure;
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+ struct udev_device *dev;
+
-+ dev = udev_monitor_receive_device(pI830->uevent_monitor);
++ dev = udev_monitor_receive_device(intel->uevent_monitor);
+ if (!dev)
+ return;
+
@@ -31,15 +31,15 @@ diff -up xf86-video-intel-20090812/src/i830_driver.c.uevent xf86-video-intel-200
+ * XXX but we should definitely trim by drm node
+ */
+
-+ RRGetInfo(screenInfo.screens[pScrn->scrnIndex], TRUE);
++ RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
+
+ udev_device_unref(dev);
+}
+
+static void
-+I830UeventInit(ScrnInfoPtr pScrn)
++I830UeventInit(ScrnInfoPtr scrn)
+{
-+ I830Ptr pI830 = I830PTR(pScrn);
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+ struct udev *u;
+ struct udev_monitor *mon;
+
@@ -64,53 +64,55 @@ diff -up xf86-video-intel-20090812/src/i830_driver.c.uevent xf86-video-intel-200
+ return;
+ }
+
-+ pI830->uevent_handler =
++ intel->uevent_handler =
+ xf86AddGeneralHandler(udev_monitor_get_fd(mon),
+ I830HandleUEvents,
-+ pScrn);
++ scrn);
+
-+ pI830->uevent_monitor = mon;
++ intel->uevent_monitor = mon;
+}
+
+static void
-+I830UeventFini(ScrnInfoPtr pScrn)
++I830UeventFini(ScrnInfoPtr scrn)
+{
-+ I830Ptr pI830 = I830PTR(pScrn);
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+
-+ if (pI830->uevent_handler)
++ if (intel->uevent_handler)
+ {
-+ struct udev *u = udev_monitor_get_udev(pI830->uevent_monitor);
++ struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
+
-+ xf86RemoveGeneralHandler(pI830->uevent_handler);
++ xf86RemoveGeneralHandler(intel->uevent_handler);
+
-+ udev_monitor_unref(pI830->uevent_monitor);
++ udev_monitor_unref(intel->uevent_monitor);
+ udev_unref(u);
+ }
+}
+
static Bool
- I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
{
-@@ -2834,6 +2910,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr
- pI830->closing = FALSE;
- pI830->suspended = FALSE;
+@@ -1233,6 +1309,8 @@ I830ScreenInit(int scrnIndex, ScreenPtr
-+ I830UeventInit(pScrn);
+ intel->suspended = FALSE;
+
++ I830UeventInit(scrn);
+
- return TRUE;
+ return uxa_resources_init(screen);
}
-@@ -3093,6 +3171,8 @@ I830CloseScreen(int scrnIndex, ScreenPtr
-
- pI830->closing = TRUE;
-
-+ I830UeventFini(pScrn);
-+
- if (pScrn->vtSema == TRUE) {
- I830LeaveVT(scrnIndex, 0);
- }
---- xf86-video-intel-20090812/src/i830.h.uevent 2009-09-01 15:41:32.825975679 -0400
-+++ xf86-video-intel-20090812/src/i830.h 2009-09-01 15:41:32.838947026 -0400
+@@ -1306,7 +1384,8 @@ static Bool I830CloseScreen(int scrnInde
+ {
+ ScrnInfoPtr scrn = xf86Screens[scrnIndex];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+-
++
++ I830UeventFini(scrn);
+ if (scrn->vtSema == TRUE) {
+ I830LeaveVT(scrnIndex, 0);
+ }
+diff -up xf86-video-intel-2.12.0/src/i830.h.uevent xf86-video-intel-2.12.0/src/i830.h
+--- xf86-video-intel-2.12.0/src/i830.h.uevent 2010-06-24 16:29:49.000000000 -0400
++++ xf86-video-intel-2.12.0/src/i830.h 2010-06-25 11:39:15.665029821 -0400
@@ -47,6 +47,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN
#ifndef _I830_H_
#define _I830_H_
@@ -120,19 +122,20 @@ diff -up xf86-video-intel-20090812/src/i830_driver.c.uevent xf86-video-intel-200
#include "xf86_OSproc.h"
#include "compiler.h"
#include "xf86PciInfo.h"
-@@ -618,6 +620,9 @@ typedef struct _I830Rec {
- /** User option to print acceleration fallback info to the server log. */
- Bool fallback_debug;
- struct sdvo_device_mapping sdvo_mappings[2];
-+
-+ struct udev_monitor *uevent_monitor;
-+ InputHandlerProc uevent_handler;
- } I830Rec;
+@@ -432,6 +434,9 @@ typedef struct intel_screen_private {
+ */
+ Bool fallback_debug;
+ unsigned debug_flush;
++
++ struct udev_monitor *uevent_monitor;
++ InputHandlerProc uevent_handler;
+ } intel_screen_private;
- #define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
---- xf86-video-intel-20090812/src/Makefile.am.uevent 2009-08-11 14:50:03.000000000 -0400
-+++ xf86-video-intel-20090812/src/Makefile.am 2009-09-01 15:44:06.552076300 -0400
-@@ -32,7 +32,7 @@ AM_CFLAGS = @WARN_CFLAGS@ @XORG_CFLAGS@
+ enum {
+diff -up xf86-video-intel-2.12.0/src/Makefile.am.uevent xf86-video-intel-2.12.0/src/Makefile.am
+--- xf86-video-intel-2.12.0/src/Makefile.am.uevent 2010-06-24 16:29:37.000000000 -0400
++++ xf86-video-intel-2.12.0/src/Makefile.am 2010-06-25 11:39:15.665029821 -0400
+@@ -32,7 +32,7 @@ AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @
intel_drv_la_LTLIBRARIES = intel_drv.la
intel_drv_la_LDFLAGS = -module -avoid-version
intel_drv_ladir = @moduledir@/drivers
diff --git a/xorg-x11-drv-intel.spec b/xorg-x11-drv-intel.spec
index bf1cd26..6055656 100644
--- a/xorg-x11-drv-intel.spec
+++ b/xorg-x11-drv-intel.spec
@@ -2,18 +2,20 @@
%define legacyver 2.6.0-8
%define moduledir %(pkg-config xorg-server --variable=moduledir )
%define driverdir %{moduledir}/drivers
-%define gputoolsdate 20090908
+%define gputoolsdate 20100625
+#define gitdate 20100326
Summary: Xorg X11 Intel video driver
Name: xorg-x11-drv-intel
-Version: 2.9.1
-Release: 1%{?dist}
+Version: 2.12.0
+Release: 5%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-%{version}.tar.bz2
+#Source0: xf86-video-intel-%{gitdate}.tar.bz2
Source1: make-intel-gpu-tools-snapshot.sh
Source2: intel.xinf
Source3: intel-gpu-tools-%{gputoolsdate}.tar.bz2
@@ -24,10 +26,19 @@ Patch2: copy-fb.patch
# needs to be upstreamed
Patch20: intel-2.8.0-kms-get-crtc.patch
-Patch21: intel-2.8.0-lvds-first.patch
+Patch21: intel-2.11-lvds-first.patch
+Patch22: intel-2.11.0-vga-clock-max.patch
+
+# backported
+Patch23: intel-2.12-fix-uxa-planemask.patch
Patch60: uevent.patch
-Patch70: lvds-modes.patch
+
+# https://bugs.freedesktop.org/show_bug.cgi?id=27885
+Patch61: intel-2.10.0-add-mbp-backlight.patch
+
+# https://bugzilla.redhat.com/588421
+Patch62: intel-2.11-no-pageflipping.patch
ExclusiveArch: %{ix86} x86_64 ia64
@@ -35,12 +46,16 @@ BuildRequires: autoconf automake libtool
BuildRequires: xorg-x11-server-devel >= 1.4.99.1
BuildRequires: libXvMC-devel
BuildRequires: mesa-libGL-devel >= 6.5-9
-BuildRequires: libdrm-devel >= 2.4.6
-BuildRequires: kernel-headers
+BuildRequires: libdrm-devel >= 2.4.17-1
+BuildRequires: kernel-headers >= 2.6.32.3
BuildRequires: libudev-devel
+BuildRequires: libxcb-devel >= 1.5
+BuildRequires: xcb-util-devel
Requires: hwdata
Requires: xorg-x11-server-Xorg >= 1.4.99.1
+Requires: libxcb >= 1.5
+Requires: xcb-util
Requires: kernel >= 2.6.29-0.203.rc7.fc11
Provides: %{legacyname} = %{legacyver}
@@ -76,18 +91,21 @@ Debugging tools for Intel graphics chips
%prep
%setup -q -n xf86-video-intel-%{dirsuffix} -b3
%patch1 -p1 -b .svideo
-%patch2 -p1 -b .copy-fb
+#patch2 -p1 -b .copy-fb
%patch20 -p1 -b .get-crtc
%patch21 -p1 -b .lvds-first
+%patch22 -p1 -b .vga-clock
+%patch23 -p1 -b .uxa-fix
%patch60 -p1 -b .uevent
-%patch70 -p1 -b .lvds-modes
+%patch61 -p1 -b .mbp-backlight
+%patch62 -p1 -b .no-flip
%build
# Need autoreconf also when patching a release (to pick up -ludev)
autoreconf -vi
-%configure --disable-static --libdir=%{_libdir} --mandir=%{_mandir} --enable-dri --enable-kms
+%configure --disable-static --libdir=%{_libdir} --mandir=%{_mandir} --enable-dri --enable-xvmc
make
pushd ../intel-gpu-tools-%{gputoolsdate}
@@ -114,12 +132,8 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
+%doc COPYING
%{driverdir}/intel_drv.so
-%{driverdir}/ch7xxx.so
-%{driverdir}/sil164.so
-%{driverdir}/ch7017.so
-%{driverdir}/ivch.so
-%{driverdir}/tfp410.so
%{_datadir}/hwdata/videoaliases/intel.xinf
%{_libdir}/libI810XvMC.so.1*
%{_libdir}/libIntelXvMC.so.1*
@@ -132,10 +146,60 @@ rm -rf $RPM_BUILD_ROOT
%files -n intel-gpu-tools
%defattr(-,root,root,-)
+%doc COPYING
%{_bindir}/intel_*
%{_mandir}/man1/intel_*.1*
%changelog
+* Thu Jul 08 2010 Adam Jackson <ajax at redhat.com> 2.12.0-5
+- Install COPYING.
+
+* Mon Jul 05 2010 Dave Airlie <airlied at redhat.com> 2.12.0-4
+- rebuild for fixed patch.
+
+* Mon Jul 05 2010 Peter Hutterer <peter.hutterer at redhat.com> - 2.12.0-3
+- rebuild for X Server 1.9
+
+* Mon Jul 05 2010 Dave Airlie <airlied at redhat.com> 2.12.0-2
+- add fix for UXA planemask issue
+
+* Fri Jun 25 2010 Adam Jackson <ajax at redhat.com> 2.12.0-1
+- intel 2.12.0
+- new gpu-tools snapshot
+
+* Fri Jun 25 2010 Dave Airlie <airlied at redhat.com> 2.11.0-5
+- intel-2.11.0-fix-rotate-flushing-965.patch: fix rotation issues
+
+* Mon May 03 2010 Adam Jackson <ajax at redhat.com> 2.11.0-4
+- intel-2.11-no-pageflipping.patch: Disable pageflipping (#588421)
+
+* Fri Apr 30 2010 Bastien Nocera <bnocera at redhat.com> 2.11.0-3
+- Add MacBook backlight support
+
+* Mon Apr 26 2010 Adam Jackson <ajax at redhat.com> 2.11.0-2
+- intel-2.11.0-vga-clock-max.patch: Clamp VGA pixel clock to 250MHz,
+ anything higher's going to look awful anyway. (#559426)
+
+* Fri Apr 16 2010 Adam Jackson <ajax at redhat.com> 2.11.0-1
+- intel 2.11.0
+- new gpu tools snapshot
+
+* Fri Mar 26 2010 Adam Jackson <ajax at redhat.com> 2.10.0-5
+- New driver snapshot (2.10.92ish).
+- New GPU tools snapshot.
+
+* Wed Feb 10 2010 Adam Jackson <ajax at redhat.com> 2.10.0-4
+- Remove call to I830EmitFlush (#563212)
+
+* Mon Feb 08 2010 Adam Jackson <ajax at redhat.com> 2.10.0-3
+- Re-apply patches.
+
+* Thu Jan 21 2010 Peter Hutterer <peter.hutterer at redhat.com> - 2.10.0-2
+- Rebuild for server 1.8
+
+* Wed Jan 13 2010 Dave Airlie <airlied at redhat.com> 2.10.0-1
+- intel 2.10.0 - needs libxcb for XvMC client
+
* Mon Oct 26 2009 Adam Jackson <ajax at redhat.com> 2.9.1-1
- intel 2.9.1
More information about the scm-commits
mailing list