* Thu Aug 02 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-16
- xserver-1.3.0-add-really-slow-bcopy.patch: Speed server start on some cards
This commit is contained in:
parent
ce95655951
commit
552bdc343c
@ -9,7 +9,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.3.0.0
|
||||
Release: 15%{?dist}
|
||||
Release: 16%{?dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT/X11
|
||||
Group: User Interface/X
|
||||
@ -68,6 +68,7 @@ Patch2008: xserver-1.3.0-randrama-no-zero-screens.patch
|
||||
Patch2009: xserver-1.3.0-arm-iopl.patch
|
||||
Patch2010: xserver-1.3.0-idletime.patch
|
||||
Patch2011: xserver-1.3.0-edid-quirk-backports.patch
|
||||
Patch2012: xserver-1.3.0-add-really-slow-bcopy.patch
|
||||
|
||||
# assorted PCI layer shenanigans. oh the pain.
|
||||
Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch
|
||||
@ -325,6 +326,7 @@ Xserver source code needed to build VNC server (Xvnc)
|
||||
%patch2009 -p1 -b .arm
|
||||
%patch2010 -p1 -b .idletime
|
||||
%patch2011 -p1 -b .edid-quirks
|
||||
%patch2012 -p1 -b .slow-bcopy
|
||||
|
||||
%patch2500 -p1 -b .unbreak-domains
|
||||
%patch2501 -p1 -b .pci-bus-count
|
||||
@ -600,6 +602,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Aug 02 2007 Dave Airlie <airlied@redhat.com> 1.3.0.0-16
|
||||
- xserver-1.3.0-add-really-slow-bcopy.patch: Speed server start on some cards
|
||||
|
||||
* Thu Jul 12 2007 Adam Jackson <ajax@redhat.com> 1.3.0.0-15
|
||||
- xserver-1.3.0-edid-quirk-backports.patch: Backport EDID quirks from
|
||||
master; fixes some Samsung monitors. (#232810)
|
||||
|
73
xserver-1.3.0-add-really-slow-bcopy.patch
Normal file
73
xserver-1.3.0-add-really-slow-bcopy.patch
Normal file
@ -0,0 +1,73 @@
|
||||
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
|
||||
index d925bed..8a2768d 100644
|
||||
--- a/hw/xfree86/loader/xf86sym.c
|
||||
+++ b/hw/xfree86/loader/xf86sym.c
|
||||
@@ -259,6 +259,7 @@ _X_HIDDEN void *xfree86LookupTab[] = {
|
||||
SYMFUNC(xf86UDelay)
|
||||
SYMFUNC(xf86IODelay)
|
||||
SYMFUNC(xf86SlowBcopy)
|
||||
+ SYMFUNC(xf86SetReallySlowBcopy)
|
||||
#ifdef __alpha__
|
||||
SYMFUNC(xf86SlowBCopyToBus)
|
||||
SYMFUNC(xf86SlowBCopyFromBus)
|
||||
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
|
||||
index 7694eaa..5cd7168 100644
|
||||
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
|
||||
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
|
||||
@@ -22,21 +22,37 @@
|
||||
#include "xf86_OSlib.h"
|
||||
#include "compiler.h"
|
||||
|
||||
-/* The outb() isn't needed on my machine, but who knows ... -- ost */
|
||||
+static int really_slow_bcopy;
|
||||
+
|
||||
_X_EXPORT void
|
||||
-xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
|
||||
+xf86SetReallySlowBcopy(void)
|
||||
+{
|
||||
+ really_slow_bcopy = 1;
|
||||
+}
|
||||
+
|
||||
+#if defined(__i386__) || defined(__x86_64__)
|
||||
+static void xf86_really_slow_bcopy(unsigned char *src, unsigned char *dst, int len)
|
||||
{
|
||||
while(len--)
|
||||
{
|
||||
*dst++ = *src++;
|
||||
-#if !defined(__sparc__) && \
|
||||
- !defined(__powerpc__) && \
|
||||
- !defined(__mips__) && \
|
||||
- !defined(__ia64__) && \
|
||||
- !defined(__arm__)
|
||||
outb(0x80, 0x00);
|
||||
+ }
|
||||
+}
|
||||
#endif
|
||||
+
|
||||
+/* The outb() isn't needed on my machine, but who knows ... -- ost */
|
||||
+_X_EXPORT void
|
||||
+xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
|
||||
+{
|
||||
+#if defined(__i386__) || defined(__x86_64__)
|
||||
+ if (really_slow_bcopy) {
|
||||
+ xf86_really_slow_bcopy(src, dst, len);
|
||||
+ return;
|
||||
}
|
||||
+#endif
|
||||
+ while(len--)
|
||||
+ *dst++ = *src++;
|
||||
}
|
||||
|
||||
#ifdef __alpha__
|
||||
diff --git a/hw/xfree86/os-support/xf86_OSproc.h b/hw/xfree86/os-support/xf86_OSproc.h
|
||||
index 1bbbf56..6f0391d 100644
|
||||
--- a/hw/xfree86/os-support/xf86_OSproc.h
|
||||
+++ b/hw/xfree86/os-support/xf86_OSproc.h
|
||||
@@ -159,6 +159,7 @@ extern void xf86BusToMem(unsigned char *, unsigned char *, int);
|
||||
extern void xf86MemToBus(unsigned char *, unsigned char *, int);
|
||||
extern void xf86IODelay(void);
|
||||
extern void xf86UDelay(long usec);
|
||||
+extern void xf86SetReallySlowBcopy(void);
|
||||
extern void xf86SlowBcopy(unsigned char *, unsigned char *, int);
|
||||
extern int xf86OpenSerial(pointer options);
|
||||
extern int xf86SetSerial(int fd, pointer options);
|
Loading…
Reference in New Issue
Block a user