diff --git a/.cvsignore b/.cvsignore index 7df864e..d0130d9 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -xf86-video-vesa-20080404.tar.bz2 +xf86-video-vesa-2.0.0.tar.bz2 diff --git a/import.log b/import.log new file mode 100644 index 0000000..d54aacd --- /dev/null +++ b/import.log @@ -0,0 +1 @@ +xorg-x11-drv-vesa-2_0_0-1_fc10:HEAD:xorg-x11-drv-vesa-2.0.0-1.fc10.src.rpm:1215442817 diff --git a/sources b/sources index 28efd19..5199ed3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a99b7c6bb10cee6adeec1a6313ca75b7 xf86-video-vesa-20080404.tar.bz2 +433cf6f961eb4a2ab6fcb086def0b2b4 xf86-video-vesa-2.0.0.tar.bz2 diff --git a/vesa-1.3.0-range-hack.patch b/vesa-1.3.0-range-hack.patch deleted file mode 100644 index b48987d..0000000 --- a/vesa-1.3.0-range-hack.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- xf86-video-vesa-1.3.0/src/vesa.c.jx 2007-01-30 10:31:32.000000000 -0500 -+++ xf86-video-vesa-1.3.0/src/vesa.c 2007-01-30 10:56:15.000000000 -0500 -@@ -638,8 +638,40 @@ - xf86UnloadSubModule(pDDCModule); - } - -- if ((pScrn->monitor->DDC = pVesa->monitor) != NULL) -- xf86SetDDCproperties(pScrn, pVesa->monitor); -+ /* UNCLEAN */ -+ do { -+ Bool had_cfg_ranges, have_ddc_ranges; -+ -+ had_cfg_ranges = (pScrn->monitor->nHsync || pScrn->monitor->nVrefresh); -+ if ((pScrn->monitor->DDC = pVesa->monitor) != NULL) -+ xf86SetDDCproperties(pScrn, pVesa->monitor); -+ have_ddc_ranges = (pScrn->monitor->nHsync || pScrn->monitor->nVrefresh); -+ -+ if (have_ddc_ranges && !had_cfg_ranges) { -+ int i; -+ for (i = 0; i < DET_TIMINGS; i++) { -+ if (pVesa->monitor->det_mon[i].type == DS_RANGES) -+ break; -+ } -+ if (i < DET_TIMINGS) -+ break; -+ -+ /* -+ * DDC added ranges, but they're inferred from the modes, not -+ * copied from a range section. So in the worst case, where it's -+ * not a range but a single frequency, stretch things out to be -+ * a range. Panels with only one mode listed in DDC will -+ * otherwise probably not match any VESA modes. Hooray for -+ * conformance. -+ */ -+ if (pScrn->monitor->hsync[0].lo == pScrn->monitor->hsync[0].hi -+ && pScrn->monitor->hsync[0].lo > 31.5) -+ pScrn->monitor->hsync[0].lo = 31.5; -+ if (pScrn->monitor->vrefresh[0].lo == pScrn->monitor->vrefresh[0].hi -+ && pScrn->monitor->vrefresh[0].lo > 50.0) -+ pScrn->monitor->vrefresh[0].lo = 50; -+ } -+ } while (0); - - xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, DEBUG_VERB, - "Searching for matching VESA mode(s):\n"); diff --git a/vesa-1.9-mode-heuristics.patch b/vesa-1.9-mode-heuristics.patch deleted file mode 100644 index 7b6eeb9..0000000 --- a/vesa-1.9-mode-heuristics.patch +++ /dev/null @@ -1,157 +0,0 @@ -diff -up xf86-video-vesa-20071113/src/vesa.c.mode-heuristics xf86-video-vesa-20071113/src/vesa.c ---- xf86-video-vesa-20071113/src/vesa.c.mode-heuristics 2007-11-13 18:02:17.000000000 -0500 -+++ xf86-video-vesa-20071113/src/vesa.c 2007-11-13 18:27:47.000000000 -0500 -@@ -296,6 +296,88 @@ VESAIdentify(int flags) - xf86PrintChipsets(VESA_NAME, "driver for VESA chipsets", VESAChipsets); - } - -+static VESAPtr -+VESAGetRec(ScrnInfoPtr pScrn) -+{ -+ if (!pScrn->driverPrivate) -+ pScrn->driverPrivate = xcalloc(sizeof(VESARec), 1); -+ -+ return ((VESAPtr)pScrn->driverPrivate); -+} -+ -+static ModeStatus -+VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass) -+{ -+ static int warned = 0; -+ int found = 0; -+ ScrnInfoPtr pScrn = xf86Screens[scrn]; -+ VESAPtr pVesa = VESAGetRec(pScrn); -+ MonPtr mon = pScrn->monitor, vesamon = pVesa->monitor; -+ ModeStatus ret; -+ DisplayModePtr mode; -+ float v; -+ -+ pVesa = VESAGetRec(pScrn); -+ -+ if (pass != MODECHECK_FINAL) { -+ if (!warned) { -+ xf86DrvMsg(scrn, X_WARNING, "VESAValidMode called unexpectedly\n"); -+ warned = 1; -+ } -+ return MODE_OK; -+ } -+ -+ /* -+ * This is suboptimal. We pass in just the barest description of a mode -+ * we can get away with to VBEValidateModes, so it can't really throw -+ * out anything we give it. But we need to filter the list so that we -+ * don't populate the mode list with things the monitor can't do. -+ * -+ * So first off, if this isn't a mode we handed to the server (ie, -+ * M_T_BUILTIN), then we know we can't do it. -+ */ -+ if (!(p->type & M_T_BUILTIN)) -+ return MODE_NOMODE; -+ -+ /* -+ * Next, walk through the mode list from DDC (if any) and look for a -+ * matching resolution. Only do this on the first try though; on the -+ * second VBEValidateModes, let things through if they fit at all. -+ */ -+ if (pVesa->strict_validation) { -+ if (pScrn->monitor->DDC) { -+ for (mode = pScrn->monitor->Modes; mode; mode = mode->next) { -+ if (mode->type & M_T_DRIVER && -+ mode->HDisplay == p->HDisplay && -+ mode->VDisplay == p->VDisplay) { -+ found = 1; -+ break; -+ } -+ if (mode == pScrn->monitor->Last) -+ break; -+ } -+ if (!found) -+ return MODE_NOMODE; -+ } -+ } -+ -+ /* -+ * Finally, walk through the vsync rates 1Hz at a time looking for a mode -+ * that will fit. This is assuredly a terrible way to do this, but -+ * there's no obvious method for computing a mode of a given size that -+ * will pass xf86CheckModeForMonitor. -+ */ -+ for (v = mon->vrefresh[0].lo; v <= mon->vrefresh[0].hi; v++) { -+ mode = xf86CVTMode(p->HDisplay, p->VDisplay, v, 0, 0); -+ ret = xf86CheckModeForMonitor(mode, mon); -+ xfree(mode); -+ if (ret == MODE_OK) -+ break; -+ } -+ -+ return ret; -+} -+ - /* - * This function is called once, at the start of the first server generation to - * do a minimal probe for supported hardware. -@@ -373,6 +455,7 @@ VESAProbe(DriverPtr drv, int flags) - pScrn->PreInit = VESAPreInit; - pScrn->ScreenInit = VESAScreenInit; - pScrn->SwitchMode = VESASwitchMode; -+ pScrn->ValidMode = VESAValidMode; - pScrn->AdjustFrame = VESAAdjustFrame; - pScrn->EnterVT = VESAEnterVT; - pScrn->LeaveVT = VESALeaveVT; -@@ -447,15 +530,6 @@ VESAFindIsaDevice(GDevPtr dev) - return (int)CHIP_VESA_GENERIC; - } - --static VESAPtr --VESAGetRec(ScrnInfoPtr pScrn) --{ -- if (!pScrn->driverPrivate) -- pScrn->driverPrivate = xcalloc(sizeof(VESARec), 1); -- -- return ((VESAPtr)pScrn->driverPrivate); --} -- - static void - VESAFreeRec(ScrnInfoPtr pScrn) - { -@@ -650,6 +724,7 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags - - VBESetModeNames(pScrn->modePool); - -+ pVesa->strict_validation = TRUE; - i = VBEValidateModes(pScrn, NULL, pScrn->display->modes, - NULL, NULL, 0, 2048, 1, 0, 2048, - pScrn->display->virtualX, -@@ -657,6 +732,20 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags - pVesa->mapSize, LOOKUP_BEST_REFRESH); - - if (i <= 0) { -+ DisplayModePtr mode; -+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, -+ "No valid modes left. Trying less strict filter...\n"); -+ for (mode = pScrn->monitor->Modes; mode; mode = mode->next) -+ mode->status = MODE_OK; -+ pVesa->strict_validation = FALSE; -+ i = VBEValidateModes(pScrn, NULL, pScrn->display->modes, -+ NULL, NULL, 0, 2048, 1, 0, 2048, -+ pScrn->display->virtualX, -+ pScrn->display->virtualY, -+ pVesa->mapSize, LOOKUP_BEST_REFRESH); -+ } -+ -+ if (i <= 0) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes\n"); - vbeFree(pVesa->pVbe); - return (FALSE); -diff -up xf86-video-vesa-20071113/src/vesa.h.mode-heuristics xf86-video-vesa-20071113/src/vesa.h ---- xf86-video-vesa-20071113/src/vesa.h.mode-heuristics 2007-11-13 18:02:17.000000000 -0500 -+++ xf86-video-vesa-20071113/src/vesa.h 2007-11-13 18:28:23.000000000 -0500 -@@ -116,7 +116,7 @@ typedef struct _VESARec - CARD32 *pal, *savedPal; - CARD8 *fonts; - xf86MonPtr monitor; -- Bool shadowFB; -+ Bool shadowFB, strict_validation; - CARD32 windowAoffset; - /* Don't override the default refresh rate. */ - Bool defaultRefresh; diff --git a/vesa-1.9-no-legacy-fb.patch b/vesa-1.9-no-legacy-fb.patch deleted file mode 100644 index bfc8723..0000000 --- a/vesa-1.9-no-legacy-fb.patch +++ /dev/null @@ -1,119 +0,0 @@ -From a1fbfb880dc51c81bf5dadd20aa9a166e59e4269 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 13 Nov 2007 18:25:28 -0500 -Subject: [PATCH] Nuke legacy fb support. - ---- - src/vesa.c | 48 ++---------------------------------------------- - src/vesa.h | 8 -------- - 2 files changed, 2 insertions(+), 54 deletions(-) - -diff --git a/src/vesa.c b/src/vesa.c -index e4e6547..0079cd0 100644 ---- a/src/vesa.c -+++ b/src/vesa.c -@@ -181,16 +181,6 @@ static const OptionInfoRec VESAOptions[] = { - * xf86LoaderReqSymLists(). The purpose is this is to avoid warnings about - * unresolved symbols that are not required. - */ --#ifdef XFree86LOADER --static const char *miscfbSymbols[] = { -- "xf1bppScreenInit", -- "xf4bppScreenInit", --#ifdef USE_AFB -- "afbScreenInit", --#endif -- NULL --}; --#endif - - static const char *fbSymbols[] = { - "fbPictureInit", -@@ -268,8 +258,7 @@ vesaSetup(pointer Module, pointer Options, int *ErrorMajor, int *ErrorMinor) - { - Initialised = TRUE; - xf86AddDriver(&VESA, Module, 1); -- LoaderRefSymLists(miscfbSymbols, -- fbSymbols, -+ LoaderRefSymLists(fbSymbols, - shadowSymbols, - vbeSymbols, - ddcSymbols, -@@ -729,23 +718,9 @@ VESAPreInit(ScrnInfoPtr pScrn, int flags) - } - else { - switch (pScrn->bitsPerPixel) { -- case 1: -- mod = "xf1bpp"; -- reqSym = "xf1bppScreenInit"; -- break; -- case 4: -- mod = "xf4bpp"; -- reqSym = "xf4bppScreenInit"; -- break; - default: --#ifdef USE_AFB -- mod = "afb"; -- reqSym = "afbScreenInit"; -- break; --#else - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unsupported bpp: %d", pScrn->bitsPerPixel); --#endif - } - } - break; -@@ -921,28 +896,9 @@ VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) - return (FALSE); - case 0x3: /* Planar */ - switch (pScrn->bitsPerPixel) { -- case 1: -- if (!xf1bppScreenInit(pScreen, pVesa->base, -- pScrn->virtualX, pScrn->virtualY, -- pScrn->xDpi, pScrn->yDpi, -- pScrn->displayWidth)) -- return (FALSE); -- break; -- case 4: -- if (!xf4bppScreenInit(pScreen, pVesa->base, -- pScrn->virtualX, pScrn->virtualY, -- pScrn->xDpi, pScrn->yDpi, -- pScrn->displayWidth)) -- return (FALSE); -- break; - default: --#ifdef USE_AFB -- if (!afbScreenInit(pScreen, pVesa->base, -- pScrn->virtualX, pScrn->virtualY, -- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth)) --#endif - return (FALSE); -- break; -+ break; - } - break; - case 0x4: /* Packed pixel */ -diff --git a/src/vesa.h b/src/vesa.h -index 0705d76..6c5b8c0 100644 ---- a/src/vesa.h -+++ b/src/vesa.h -@@ -69,16 +69,8 @@ - #include "xf86Resources.h" - #include "xf86RAC.h" - --#include "xf1bpp.h" --#include "xf4bpp.h" - #include "fb.h" - --#ifdef USE_AFB --#include "afb.h" --#endif -- --#include "mfb.h" -- - #ifdef XSERVER_LIBPCIACCESS - #include - #endif --- -1.5.3.4 - diff --git a/xorg-x11-drv-vesa.spec b/xorg-x11-drv-vesa.spec index a12fcab..cc0345d 100644 --- a/xorg-x11-drv-vesa.spec +++ b/xorg-x11-drv-vesa.spec @@ -2,26 +2,20 @@ %define moduledir %(pkg-config xorg-server --variable=moduledir ) %define driverdir %{moduledir}/drivers -%define gitdate 20080404 - Summary: Xorg X11 vesa video driver Name: xorg-x11-drv-vesa -Version: 1.3.0 -Release: 14.%{gitdate}%{?dist} +Version: 2.0.0 +Release: 1%{?dist} URL: http://www.x.org -Source0: http://xorg.freedesktop.org/releases/individual/driver/%{tarball}-%{gitdate}.tar.bz2 +Source0: http://xorg.freedesktop.org/releases/individual/driver/%{tarball}-%{version}.tar.bz2 License: MIT Group: User Interface/X Hardware Support BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExcludeArch: s390 s390x -Patch1: vesa-1.9-mode-heuristics.patch -Patch2: vesa-1.3.0-range-hack.patch -Patch3: vesa-1.9-no-legacy-fb.patch - BuildRequires: xorg-x11-server-sdk >= 1.4.99.1-0.15 -BuildRequires: autoconf automake libtool +#BuildRequires: autoconf automake libtool Requires: xorg-x11-server-Xorg >= 1.4.99.1 @@ -29,14 +23,10 @@ Requires: xorg-x11-server-Xorg >= 1.4.99.1 X.Org X11 vesa video driver. %prep -%setup -q -n %{tarball}-%{gitdate} - -%patch1 -p1 -b .mode-heuristics -%patch2 -p1 -b .range-hack -%patch3 -p1 -b .legacy +%setup -q -n %{tarball}-%{version} %build -autoreconf -v --install || exit 1 +#autoreconf -v --install || exit 1 %configure --disable-static make @@ -58,6 +48,12 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man4/vesa.4* %changelog +* Tue Jul 01 2008 Adam Jackson 2.0.0-1 +- vesa 2.0.0 + +* Tue Apr 29 2008 Adam Jackson 1.3.0-15.20080404 +- vesa-1.9-32bpp-dammit.patch: Prefer 24+32 instead of 24+24. (#427383) + * Fri Apr 04 2008 Adam Jackson 1.3.0-14.20080404 - Today's git snapshot for FTBFS and other. (#440720)