- On ia64 the Xserver brings its own PIO functions (inb, outb, ...).

These are supposed to overrule the ones provided by glibc. 
  Unfortunately this doesn't seem to work under all circumstances.
  Therefore use inX/outX_ia64 and set appropriate defines.

- Fix SIG11 on VT switch when using SW cursor with RandR (bnc #592614).

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=247
This commit is contained in:
Egbert Eich 2010-04-08 12:28:17 +00:00 committed by Git OBS Bridge
parent a7a49d52e8
commit a2b50f1252
4 changed files with 117 additions and 0 deletions

87
pio_ia64.diff Normal file
View File

@ -0,0 +1,87 @@
Index: xorg-server-1.8.0/hw/xfree86/common/compiler.h
===================================================================
--- xorg-server-1.8.0.orig/hw/xfree86/common/compiler.h
+++ xorg-server-1.8.0/hw/xfree86/common/compiler.h
@@ -409,12 +409,18 @@ extern _X_EXPORT unsigned int inl(unsign
# undef inb
# undef inw
# undef inl
-extern _X_EXPORT void outb(unsigned long port, unsigned char val);
-extern _X_EXPORT void outw(unsigned long port, unsigned short val);
-extern _X_EXPORT void outl(unsigned long port, unsigned int val);
-extern _X_EXPORT unsigned int inb(unsigned long port);
-extern _X_EXPORT unsigned int inw(unsigned long port);
-extern _X_EXPORT unsigned int inl(unsigned long port);
+#define outb(p,v) outb_ia64(p,v)
+#define outw(p,v) outw_ia64(p,v)
+#define outl(p,v) outl_ia64(p,v)
+#define inb(p) inb_ia64(p)
+#define inw(p) inw_ia64(p)
+#define inl(p) inl_ia64(p)
+extern _X_EXPORT void outb_ia64(unsigned long port, unsigned char val);
+extern _X_EXPORT void outw_ia64(unsigned long port, unsigned short val);
+extern _X_EXPORT void outl_ia64(unsigned long port, unsigned int val);
+extern _X_EXPORT unsigned int inb_ia64(unsigned long port);
+extern _X_EXPORT unsigned int inw_ia64(unsigned long port);
+extern _X_EXPORT unsigned int inl_ia64(unsigned long port);
# elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__)
Index: xorg-server-1.8.0/hw/xfree86/os-support/shared/ia64Pci.c
===================================================================
--- xorg-server-1.8.0.orig/hw/xfree86/os-support/shared/ia64Pci.c
+++ xorg-server-1.8.0/hw/xfree86/os-support/shared/ia64Pci.c
@@ -60,7 +60,7 @@ static int ia64_port_to_fd(unsigned long
return (port >> 24) & 0xffffffff;
}
-void outb(unsigned long port, unsigned char val)
+void outb_ia64(unsigned long port, unsigned char val)
{
int fd = ia64_port_to_fd(port);
@@ -80,7 +80,7 @@ void outb(unsigned long port, unsigned c
return;
}
-void outw(unsigned long port, unsigned short val)
+void outw_ia64(unsigned long port, unsigned short val)
{
int fd = ia64_port_to_fd(port);
@@ -100,7 +100,7 @@ void outw(unsigned long port, unsigned s
return;
}
-void outl(unsigned long port, unsigned int val)
+void outl_ia64(unsigned long port, unsigned int val)
{
int fd = ia64_port_to_fd(port);
@@ -120,7 +120,7 @@ void outl(unsigned long port, unsigned i
return;
}
-unsigned int inb(unsigned long port)
+unsigned int inb_ia64(unsigned long port)
{
int fd = ia64_port_to_fd(port);
unsigned char val;
@@ -142,7 +142,7 @@ unsigned int inb(unsigned long port)
return val;
}
-unsigned int inw(unsigned long port)
+unsigned int inw_ia64(unsigned long port)
{
int fd = ia64_port_to_fd(port);
unsigned short val;
@@ -164,7 +164,7 @@ unsigned int inw(unsigned long port)
return val;
}
-unsigned int inl(unsigned long port)
+unsigned int inl_ia64(unsigned long port)
{
int fd = ia64_port_to_fd(port);
unsigned int val;

13
sw_cursor_on_randr.patch Normal file
View File

@ -0,0 +1,13 @@
Index: xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c
===================================================================
--- xorg-server-1.8.0.orig/hw/xfree86/modes/xf86Cursors.c
+++ xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c
@@ -611,7 +611,7 @@ xf86_reload_cursors (ScreenPtr screen)
cursor_screen_priv = dixLookupPrivate(&screen->devPrivates,
xf86CursorScreenKey);
/* return if HW cursor is inactive, to avoid displaying two cursors */
- if (!cursor_screen_priv->isUp)
+ if (!cursor_screen_priv || !cursor_screen_priv->isUp)
return;
scrn = xf86Screens[screen->myNum];

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Apr 8 12:20:38 UTC 2010 - eich@suse.de
- On ia64 the Xserver brings its own PIO functions (inb, outb, ...).
These are supposed to overrule the ones provided by glibc.
Unfortunately this doesn't seem to work under all circumstances.
Therefore use inX/outX_ia64 and set appropriate defines.
-------------------------------------------------------------------
Thu Apr 8 11:50:30 UTC 2010 - eich@suse.de
- Fix SIG11 on VT switch when using SW cursor with RandR (bnc #592614).
-------------------------------------------------------------------
Thu Apr 8 11:49:46 CEST 2010 - ro@suse.de

View File

@ -129,6 +129,8 @@ Patch205: xorg-server-1.8.0.diff
Patch206: fix_fglrx_screendepth_issue.patch
Patch207: xorg-server-option_libxf86config.diff
Patch208: xorg-evdev-conf.diff
Patch209: sw_cursor_on_randr.patch
Patch210: pio_ia64.diff
%description
This package contains the X.Org Server.
@ -255,6 +257,8 @@ popd
%patch206 -p0
%patch207 -p0
%patch208 -p0
%patch209 -p1
%patch210 -p1
%build
pushd xorg-docs-*