From a2b50f1252371bfc746991b80f6d679b89ed2e4e45c2618df58c8c9e6bd58687 Mon Sep 17 00:00:00 2001 From: Egbert Eich Date: Thu, 8 Apr 2010 12:28:17 +0000 Subject: [PATCH] - 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 --- pio_ia64.diff | 87 ++++++++++++++++++++++++++++++++++++++++ sw_cursor_on_randr.patch | 13 ++++++ xorg-x11-server.changes | 13 ++++++ xorg-x11-server.spec | 4 ++ 4 files changed, 117 insertions(+) create mode 100644 pio_ia64.diff create mode 100644 sw_cursor_on_randr.patch diff --git a/pio_ia64.diff b/pio_ia64.diff new file mode 100644 index 0000000..8601143 --- /dev/null +++ b/pio_ia64.diff @@ -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; diff --git a/sw_cursor_on_randr.patch b/sw_cursor_on_randr.patch new file mode 100644 index 0000000..1a102da --- /dev/null +++ b/sw_cursor_on_randr.patch @@ -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]; diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 7e4f36a..ce93124 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -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 diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index b811398..30c9d1e 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -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-*