diff --git a/.gitignore b/.gitignore index c198ce4..c06d7c6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ xf86-video-intel-2.10.0.tar.bz2 /xf86-video-intel-2.15.901.tar.bz2 /xf86-video-intel-20111110.tar.bz2 /xf86-video-intel-2.17.0.tar.bz2 +/xf86-video-intel-2.18.0.tar.bz2 diff --git a/0001-uxa-Fix-clip-processing-for-uxa_fill_spans.patch b/0001-uxa-Fix-clip-processing-for-uxa_fill_spans.patch deleted file mode 100644 index bb88759..0000000 --- a/0001-uxa-Fix-clip-processing-for-uxa_fill_spans.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 429a36f7481b9bfd5ed137642d2916d69a713557 Mon Sep 17 00:00:00 2001 -From: Chris Wilson -Date: Fri, 9 Dec 2011 09:54:12 +0000 -Subject: [PATCH] uxa: Fix clip processing for uxa_fill_spans() - -Fixes regression from e0066e77e026b0dd0daa0c3765473c7d63aa6753 -(uxa: Simplify Composite solid acceleration for spans by only clipping -once) [2.15.901] - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43649 -Signed-off-by: Chris Wilson ---- - uxa/uxa-accel.c | 22 +++++++++------------- - 1 files changed, 9 insertions(+), 13 deletions(-) - -diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c -index 21957a3..e4afd13 100644 ---- a/uxa/uxa-accel.c -+++ b/uxa/uxa-accel.c -@@ -92,21 +92,17 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n, - nbox = REGION_NUM_RECTS(pClip); - pbox = REGION_RECTS(pClip); - while (nbox--) { -- if (pbox->y1 > y || pbox->y2 <= y) -- continue; -- -- if (x1 < pbox->x1) -- x1 = pbox->x1; -+ int X1 = x1, X2 = x2; -+ if (X1 < pbox->x1) -+ X1 = pbox->x1; - -- if (x2 > pbox->x2) -- x2 = pbox->x2; -- -- if (x2 <= x1) -- continue; -+ if (X2 > pbox->x2) -+ X2 = pbox->x2; - -- (*uxa_screen->info->solid) (dst_pixmap, -- x1 + off_x, y + off_y, -- x2 + off_x, y + 1 + off_y); -+ if (X2 > X1 && pbox->y1 <= y && pbox->y2 > y) -+ (*uxa_screen->info->solid) (dst_pixmap, -+ X1 + off_x, y + off_y, -+ X2 + off_x, y + 1 + off_y); - pbox++; - } - } --- -1.7.6.4 - diff --git a/735219cd59e6184a6622d3d429a704ca3f58b9cd.patch b/735219cd59e6184a6622d3d429a704ca3f58b9cd.patch deleted file mode 100644 index dc28d9a..0000000 --- a/735219cd59e6184a6622d3d429a704ca3f58b9cd.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 735219cd59e6184a6622d3d429a704ca3f58b9cd -Author: Chris Wilson -Date: Fri Dec 2 10:42:00 2011 +0000 - - uxa: Ensure that we can fallback with all of (src, mask, dst) as GTT mappings - - Signed-off-by: Chris Wilson - -diff --git a/src/intel_memory.c b/src/intel_memory.c -index 7e0a6dd..bfc0e8c 100644 ---- a/src/intel_memory.c -+++ b/src/intel_memory.c -@@ -182,13 +182,17 @@ static void intel_set_gem_max_sizes(ScrnInfoPtr scrn) - size_t agp_size = agp_aperture_size(intel->PciInfo, - INTEL_INFO(intel)->gen); - -- /* The chances of being able to mmap an object larger than this -- * are slim, so don't try. */ -- intel->max_gtt_map_size = agp_size / 2; -+ /* The chances of being able to mmap an object larger than -+ * agp_size/2 are slim. Moreover, we may be forced to fallback -+ * using a gtt mapping as both the source and a mask, as well -+ * as a destination and all need to fit into the aperture. -+ */ -+ intel->max_gtt_map_size = agp_size / 4; - - /* Let objects be tiled up to the size where only 4 would fit in -- * the aperture, presuming best case alignment. */ -- intel->max_tiling_size = agp_size / 4; -+ * the aperture, presuming best case alignment. Also if we -+ * cannot mmap it using the GTT we will be stuck. */ -+ intel->max_tiling_size = intel->max_gtt_map_size; - - /* Large BOs will tend to hit SW fallbacks frequently, and also will - * tend to fail to successfully map when doing SW fallbacks because we diff --git a/85d3dc5910a2eea3a10b822e01443e11eaae9291.patch b/85d3dc5910a2eea3a10b822e01443e11eaae9291.patch deleted file mode 100644 index 4cabed7..0000000 --- a/85d3dc5910a2eea3a10b822e01443e11eaae9291.patch +++ /dev/null @@ -1,121 +0,0 @@ -commit 85d3dc5910a2eea3a10b822e01443e11eaae9291 -Author: Chris Wilson -Date: Fri Dec 2 10:22:51 2011 +0000 - - uxa: Reset size limits based on AGP size - - The basis for the constraints are what we can map into the aperture for - direct writing with the CPU, so use the size of the mappable region as - opposed to the size of the total GTT. - - Signed-off-by: Chris Wilson - -diff --git a/src/intel.h b/src/intel.h -index 1f004a8..28f049e 100644 ---- a/src/intel.h -+++ b/src/intel.h -@@ -542,7 +542,6 @@ int intel_crtc_to_pipe(xf86CrtcPtr crtc); - unsigned long intel_get_fence_size(intel_screen_private *intel, unsigned long size); - unsigned long intel_get_fence_pitch(intel_screen_private *intel, unsigned long pitch, - uint32_t tiling_mode); --void intel_set_gem_max_sizes(ScrnInfoPtr scrn); - - drm_intel_bo *intel_allocate_framebuffer(ScrnInfoPtr scrn, - int w, int h, int cpp, -diff --git a/src/intel_memory.c b/src/intel_memory.c -index 763a6ad..7e0a6dd 100644 ---- a/src/intel_memory.c -+++ b/src/intel_memory.c -@@ -169,6 +169,35 @@ static inline int intel_pad_drawable_width(int width) - return ALIGN(width, 64); - } - -+ -+static size_t -+agp_aperture_size(struct pci_device *dev, int gen) -+{ -+ return dev->regions[gen < 30 ? 0 : 2].size; -+} -+ -+static void intel_set_gem_max_sizes(ScrnInfoPtr scrn) -+{ -+ intel_screen_private *intel = intel_get_screen_private(scrn); -+ size_t agp_size = agp_aperture_size(intel->PciInfo, -+ INTEL_INFO(intel)->gen); -+ -+ /* The chances of being able to mmap an object larger than this -+ * are slim, so don't try. */ -+ intel->max_gtt_map_size = agp_size / 2; -+ -+ /* Let objects be tiled up to the size where only 4 would fit in -+ * the aperture, presuming best case alignment. */ -+ intel->max_tiling_size = agp_size / 4; -+ -+ /* Large BOs will tend to hit SW fallbacks frequently, and also will -+ * tend to fail to successfully map when doing SW fallbacks because we -+ * overcommit address space for BO access, or worse cause aperture -+ * thrashing. -+ */ -+ intel->max_bo_size = intel->max_gtt_map_size; -+} -+ - /** - * Allocates a framebuffer for a screen. - * -@@ -249,56 +278,3 @@ retry: - - return front_buffer; - } -- --static void intel_set_max_bo_size(intel_screen_private *intel, -- const struct drm_i915_gem_get_aperture *aperture) --{ -- if (aperture->aper_available_size) -- /* Large BOs will tend to hit SW fallbacks frequently, and also will -- * tend to fail to successfully map when doing SW fallbacks because we -- * overcommit address space for BO access, or worse cause aperture -- * thrashing. -- */ -- intel->max_bo_size = aperture->aper_available_size / 2; -- else -- intel->max_bo_size = 64 * 1024 * 1024; --} -- --static void intel_set_max_gtt_map_size(intel_screen_private *intel, -- const struct drm_i915_gem_get_aperture *aperture) --{ -- if (aperture->aper_available_size) -- /* Let objects up get bound up to the size where only 2 would fit in -- * the aperture, but then leave slop to account for alignment like -- * libdrm does. -- */ -- intel->max_gtt_map_size = -- aperture->aper_available_size * 3 / 4 / 2; -- else -- intel->max_gtt_map_size = 16 * 1024 * 1024; --} -- --static void intel_set_max_tiling_size(intel_screen_private *intel, -- const struct drm_i915_gem_get_aperture *aperture) --{ -- if (aperture->aper_available_size) -- /* Let objects be tiled up to the size where only 4 would fit in -- * the aperture, presuming worst case alignment. -- */ -- intel->max_tiling_size = aperture->aper_available_size / 4; -- else -- intel->max_tiling_size = 4 * 1024 * 1024; --} -- --void intel_set_gem_max_sizes(ScrnInfoPtr scrn) --{ -- intel_screen_private *intel = intel_get_screen_private(scrn); -- struct drm_i915_gem_get_aperture aperture; -- -- aperture.aper_available_size = 0; -- drmIoctl(intel->drmSubFD, DRM_IOCTL_I915_GEM_GET_APERTURE, &aperture); -- -- intel_set_max_bo_size(intel, &aperture); -- intel_set_max_gtt_map_size(intel, &aperture); -- intel_set_max_tiling_size(intel, &aperture); --} diff --git a/f6c82c73b673ec3c9cce432fe38d5e0076234efd.patch b/f6c82c73b673ec3c9cce432fe38d5e0076234efd.patch deleted file mode 100644 index 16f38c4..0000000 --- a/f6c82c73b673ec3c9cce432fe38d5e0076234efd.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit f6c82c73b673ec3c9cce432fe38d5e0076234efd -Author: Chris Wilson -Date: Fri Dec 2 10:34:10 2011 +0000 - - uxa: Fix runtime linking of previous commit - - So much for relying on compiler warnings. - - Signed-off-by: Chris Wilson - -diff --git a/src/intel_display.c b/src/intel_display.c -index 95a9488..2183f4d 100644 ---- a/src/intel_display.c -+++ b/src/intel_display.c -@@ -409,8 +409,6 @@ intel_crtc_apply(xf86CrtcPtr crtc) - } - } - -- intel_set_gem_max_sizes(scrn); -- - if (scrn->pScreen) - xf86_reload_cursors(scrn->pScreen); - -diff --git a/src/intel_driver.c b/src/intel_driver.c -index 451bebd..2828ed6 100644 ---- a/src/intel_driver.c -+++ b/src/intel_driver.c -@@ -1170,8 +1170,6 @@ static Bool I830EnterVT(int scrnIndex, int flags) - strerror(errno)); - } - -- intel_set_gem_max_sizes(scrn); -- - if (!xf86SetDesiredModes(scrn)) - return FALSE; - diff --git a/intel-2.11-no-pageflipping.patch b/intel-2.11-no-pageflipping.patch deleted file mode 100644 index 0e59be6..0000000 --- a/intel-2.11-no-pageflipping.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up xf86-video-intel-2.13.901/src/intel_display.c.jx xf86-video-intel-2.13.901/src/intel_display.c ---- xf86-video-intel-2.13.901/src/intel_display.c.jx 2010-11-15 15:29:08.198441005 -0500 -+++ xf86-video-intel-2.13.901/src/intel_display.c 2010-11-15 15:30:45.987441742 -0500 -@@ -1546,10 +1546,14 @@ Bool intel_mode_pre_init(ScrnInfoPtr scr - 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; - - mode->event_context.version = DRM_EVENT_CONTEXT_VERSION; - mode->event_context.vblank_handler = intel_vblank_handler; -@@ -1563,7 +1567,7 @@ Bool intel_mode_pre_init(ScrnInfoPtr scr - void - intel_mode_init(struct intel_screen_private *intel) - { -- if (intel->use_pageflipping) { -+ if (intel->use_pageflipping || 1) { - struct intel_mode *mode = intel->modes; - - /* We need to re-register the mode->fd for the synchronisation -diff -up xf86-video-intel-2.13.901/src/intel_dri.c.jx xf86-video-intel-2.13.901/src/intel_dri.c ---- xf86-video-intel-2.13.901/src/intel_dri.c.jx 2010-10-13 20:19:18.000000000 -0400 -+++ xf86-video-intel-2.13.901/src/intel_dri.c 2010-11-15 15:29:08.209441005 -0500 -@@ -1202,7 +1202,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 deleted file mode 100644 index e14fd35..0000000 --- a/intel-2.11.0-vga-clock-max.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up xf86-video-intel-2.13.0/src/intel_display.c.jx xf86-video-intel-2.13.0/src/intel_display.c ---- xf86-video-intel-2.13.0/src/intel_display.c.jx 2010-09-28 23:43:10.000000000 -0400 -+++ xf86-video-intel-2.13.0/src/intel_display.c 2010-11-08 13:01:42.000000000 -0500 -@@ -696,6 +696,7 @@ static Bool - intel_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes) - { - struct intel_output *intel_output = output->driver_private; -+ drmModeConnectorPtr koutput = intel_output->mode_output; - - /* - * If the connector type is a panel, we will use the panel limit to -@@ -707,6 +708,11 @@ intel_output_mode_valid(xf86OutputPtr ou - return MODE_PANEL; - } - -+ /* 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.17.0-legacy-dri1.patch b/intel-2.17.0-legacy-dri1.patch deleted file mode 100644 index a2734b9..0000000 --- a/intel-2.17.0-legacy-dri1.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up xf86-video-intel-2.17.0/src/legacy/i810/Makefile.am.jx xf86-video-intel-2.17.0/src/legacy/i810/Makefile.am ---- xf86-video-intel-2.17.0/src/legacy/i810/Makefile.am.jx 2011-11-07 15:14:43.000000000 -0500 -+++ xf86-video-intel-2.17.0/src/legacy/i810/Makefile.am 2011-11-18 13:21:56.946525915 -0500 -@@ -25,10 +25,10 @@ liblegacy_i810_la_SOURCES +=\ - i810_dri.c \ - i810_dri.h \ - $(NULL) --endif -- - if XVMC - liblegacy_i810_la_SOURCES += \ - i810_hwmc.c \ - $(NULL) - endif -+endif -+ diff --git a/intel-2.8.0-lvds-first.patch b/intel-2.8.0-lvds-first.patch deleted file mode 100644 index ff2ff43..0000000 --- a/intel-2.8.0-lvds-first.patch +++ /dev/null @@ -1,36 +0,0 @@ -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; -- int i; -+ int i, lvds = -1; - - drmmode = xnfalloc(sizeof *drmmode); - drmmode->fd = fd; -@@ -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(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/kill-svideo.patch b/kill-svideo.patch deleted file mode 100644 index 607c5a7..0000000 --- a/kill-svideo.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/src/drmmode_display.c b/src/drmmode_display.c -index d50e640..d6c7cd3 100644 ---- a/src/drmmode_display.c -+++ b/src/drmmode_display.c -@@ -412,6 +412,18 @@ drmmode_output_detect(xf86OutputPtr output) - drmmode_output->mode_output = - drmModeGetConnector(drmmode->fd, drmmode_output->output_id); - -+ switch (drmmode_output->mode_output->connector_type) { -+ case DRM_MODE_CONNECTOR_SVIDEO: -+ /* FIXME: KMS svideo detection is flaky an causes X to -+ * come up in 1024x768 when it tries to pick a clone -+ * mode that fits both the panel and the tv out. Once -+ * KMS learns how to detect svideo better we can -+ * remove this. */ -+ return DRM_MODE_UNKNOWNCONNECTION; -+ default: -+ break; -+ } -+ - switch (drmmode_output->mode_output->connection) { - case DRM_MODE_CONNECTED: - status = XF86OutputStatusConnected; diff --git a/lvds-modes.patch b/lvds-modes.patch deleted file mode 100644 index 60e067d..0000000 --- a/lvds-modes.patch +++ /dev/null @@ -1,160 +0,0 @@ -diff -up xf86-video-intel-20090909/src/drmmode_display.c.lvds-modes xf86-video-intel-20090909/src/drmmode_display.c ---- xf86-video-intel-20090909/src/drmmode_display.c.lvds-modes 2009-09-18 14:45:51.000000000 -0400 -+++ xf86-video-intel-20090909/src/drmmode_display.c 2009-09-18 14:55:06.000000000 -0400 -@@ -701,107 +701,46 @@ static void fill_detailed_lvds_block(str - timing->misc |= 0x01; - } - --static int drmmode_output_lvds_edid(xf86OutputPtr output, -- struct fixed_panel_lvds *p_lvds) -+static DisplayModePtr -+drmmode_output_lvds_edid(xf86OutputPtr output, DisplayModePtr modes) - { -- drmmode_output_private_ptr drmmode_output = output->driver_private; -- drmModeConnectorPtr koutput = drmmode_output->mode_output; -- int i, j; -- DisplayModePtr pmode; -- xf86MonPtr edid_mon; -- drmModeModeInfo *mode_ptr; -- struct detailed_monitor_section *det_mon; -+ xf86MonPtr mon = output->MonInfo; - -- if (output->MonInfo) { -- /* -- * If there exists the EDID, we will either find a DS_RANGES -- * or replace a DS_VENDOR block, smashing it into a DS_RANGES -- * block with opern refresh to match all the default modes. -- */ -- int edid_det_block_num; -- edid_mon = output->MonInfo; -- edid_mon->features.msc |= 0x01; -- j = -1; -- edid_det_block_num = sizeof(edid_mon->det_mon) / -- sizeof(edid_mon->det_mon[0]); -- for (i = 0; i < edid_det_block_num; i++) { -- if (edid_mon->det_mon[i].type >= DS_VENDOR && j == -1) -- j = i; -- if (edid_mon->det_mon[i].type == DS_RANGES) { -- j = i; -- break; -- } -- } -- if (j != -1) { -- struct monitor_ranges *ranges = -- &edid_mon->det_mon[j].section.ranges; -- edid_mon->det_mon[j].type = DS_RANGES; -- ranges->min_v = 0; -- ranges->max_v = 200; -- ranges->min_h = 0; -- ranges->max_h = 200; -- } -- return 0; -- } -- /* -- * If there is no EDID, we will construct a bogus EDID for LVDS output -- * device. This is similar to what we have done in i830_lvds.c -- */ -- edid_mon = NULL; -- edid_mon = xcalloc(1, sizeof(xf86Monitor)); -- if (!edid_mon) { -- xf86DrvMsg(output->scrn->scrnIndex, X_ERROR, -- "Can't allocate memory for edid_mon.\n"); -- return 0; -- } -- /* Find the fixed panel mode. -- * In theory when there is no EDID, KMS kernel will return only one -- * mode. And this can be regarded as fixed lvds panel mode. -- * But it will be better to traverse the mode list to get the fixed -- * lvds panel mode again as we don't know whether some new modes -- * are added for the LVDS output device -- */ -- j = 0; -- for (i = 0; i < koutput->count_modes; i++) { -- mode_ptr = &koutput->modes[i]; -- if ((mode_ptr->hdisplay == p_lvds->hdisplay) && -- (mode_ptr->vdisplay == p_lvds->vdisplay)) { -- /* find the fixed panel mode */ -- j = i; -- break; -- } -+ if (!mon || !GTF_SUPPORTED(mon->features.msc)) { -+ DisplayModePtr i, m, p = NULL; -+ int max_x = 0, max_y = 0; -+ float max_vrefresh = 0.0; -+ -+ for (m = modes; m; m = m->next) { -+ if (m->type & M_T_PREFERRED) -+ p = m; -+ max_x = max(max_x, m->HDisplay); -+ max_y = max(max_y, m->VDisplay); -+ max_vrefresh = max(max_vrefresh, xf86ModeVRefresh(m)); - } -- pmode = xnfalloc(sizeof(DisplayModeRec)); -- drmmode_ConvertFromKMode(output->scrn, &koutput->modes[j], pmode); -- /*support DPM, instead of DPMS*/ -- edid_mon->features.dpms |= 0x1; -- /*defaultly support RGB color display*/ -- edid_mon->features.display_type |= 0x1; -- /*defaultly display support continuous-freqencey*/ -- edid_mon->features.msc |= 0x1; -- /*defaultly the EDID version is 1.4 */ -- edid_mon->ver.version = 1; -- edid_mon->ver.revision = 4; -- det_mon = edid_mon->det_mon; -- if (pmode) { -- /* now we construct new EDID monitor, -- * so filled one detailed timing block -- */ -- fill_detailed_lvds_block(det_mon, pmode); -- /* the filed timing block should be set preferred*/ -- edid_mon->features.msc |= 0x2; -- det_mon = det_mon + 1; -+ -+ max_vrefresh = max(max_vrefresh, 60.0); -+ max_vrefresh *= (1 + SYNC_TOLERANCE); -+ -+ m = xf86GetDefaultModes(); -+ -+ xf86ValidateModesSize(output->scrn, m, max_x, max_y, 0); -+ -+ for (i = m; i; i = i->next) { -+ if (xf86ModeVRefresh(i) > max_vrefresh) -+ i->status = MODE_VSYNC; -+ if (p && i->HDisplay >= p->HDisplay && -+ i->VDisplay >= p->VDisplay && -+ xf86ModeVRefresh(i) >= xf86ModeVRefresh(p)) -+ i->status = MODE_VSYNC; - } -- /* Set wide sync ranges so we get all modes -- * handed to valid_mode for checking -- */ -- det_mon->type = DS_RANGES; -- det_mon->section.ranges.min_v = 0; -- det_mon->section.ranges.max_v = 200; -- det_mon->section.ranges.min_h = 0; -- det_mon->section.ranges.max_h = 200; -- output->MonInfo = edid_mon; -- return 0; -+ -+ xf86PruneInvalidModes(output->scrn, &m, FALSE); -+ -+ modes = xf86ModesAdd(modes, m); -+ } -+ -+ return modes; - } - - static DisplayModePtr -@@ -869,8 +808,11 @@ drmmode_output_get_modes(xf86OutputPtr o - if (!p_lvds->hdisplay || !p_lvds->vdisplay) - xf86DrvMsg(output->scrn->scrnIndex, X_ERROR, - "Incorrect KMS mode.\n"); -- drmmode_output_lvds_edid(output, p_lvds); - } -+ -+ if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) -+ Modes = drmmode_output_lvds_edid(output, Modes); -+ - return Modes; - } - diff --git a/sources b/sources index a683c1b..ffd2801 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ 3ad323489a5a8b821fd24811242a9eea intel-gpu-tools-20110817.tar.bz2 6d7b1f199dba5820f250888b136186ff xf86-video-intel-2.17.0.tar.bz2 +34f3987ffe86e30c57abc33b7f8030e9 xf86-video-intel-2.18.0.tar.bz2 diff --git a/xorg-x11-drv-intel.spec b/xorg-x11-drv-intel.spec index e8e8579..d1a1456 100644 --- a/xorg-x11-drv-intel.spec +++ b/xorg-x11-drv-intel.spec @@ -5,8 +5,8 @@ Summary: Xorg X11 Intel video driver Name: xorg-x11-drv-intel -Version: 2.17.0 -Release: 10%{?dist} +Version: 2.18.0 +Release: 1%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X Hardware Support @@ -17,18 +17,8 @@ Source1: make-intel-gpu-tools-snapshot.sh Source3: intel-gpu-tools-%{gputoolsdate}.tar.bz2 Source4: make-git-snapshot.sh -# deactivated for now, maybe no longer needed -Patch1: kill-svideo.patch # port me dangit Patch2: copy-fb.patch -# needs to be upstreamed -Patch22: intel-2.11.0-vga-clock-max.patch -Patch23: intel-2.17.0-legacy-dri1.patch -Patch24: 0001-uxa-Fix-clip-processing-for-uxa_fill_spans.patch - -Patch100: 85d3dc5910a2eea3a10b822e01443e11eaae9291.patch -Patch101: 735219cd59e6184a6622d3d429a704ca3f58b9cd.patch -Patch102: f6c82c73b673ec3c9cce432fe38d5e0076234efd.patch ExclusiveArch: %{ix86} x86_64 ia64 @@ -77,12 +67,7 @@ Debugging tools for Intel graphics chips %prep %setup -q -n xf86-video-intel-%{?gitdate:%{gitdate}}%{!?gitdate:%{dirsuffix}} -b3 -%patch22 -p1 -b .vga-clock #patch23 -p1 -b .legacy -%patch24 -p1 -b .clip -%patch100 -p1 -b .kablooie -%patch101 -p1 -b .kablooie2 -%patch102 -p1 -b .kablooie3 %build @@ -134,6 +119,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/intel_*.1* %changelog +* Fri Feb 24 2012 Adam Jackson 2.18.0-1 +- intel 2.18.0 + * Sat Feb 11 2012 Peter Hutterer - 2.17.0-10 - ABI rebuild