From 4dad67f31a9dd21cce972b21181e4d6d1a7d7cb8 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Tue, 3 Feb 2009 02:20:31 +0000 Subject: [PATCH] - Partially back out the previous attempt to fix PS/2 protocol support. Extended PS/2 protocol without moused(8) is only supported from FreeBSD 7.1 and above. - Try default PS/2 and USB mouse ports if /dev/sysmouse does not exist. Previously, it was only available when HAL support was compiled in. They should be able to handle SysMouse protocol at operation level 1. - Check protocol for ums(4) as it only supports SysMouse protocol. - Sync X server with mouse driver. Reviewed by: rnoland --- x11-drivers/xf86-input-mouse/Makefile | 2 +- .../files/patch-src-bsd_mouse.c | 38 ++++++++++--------- x11-servers/xorg-server/Makefile | 2 +- ...rver-hw-xfree86-os-support-bsd-bsd_mouse.c | 35 ++++++++++------- 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/x11-drivers/xf86-input-mouse/Makefile b/x11-drivers/xf86-input-mouse/Makefile index a0d57399107c..a664fce07084 100644 --- a/x11-drivers/xf86-input-mouse/Makefile +++ b/x11-drivers/xf86-input-mouse/Makefile @@ -7,7 +7,7 @@ PORTNAME= xf86-input-mouse PORTVERSION= 1.4.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11-drivers MAINTAINER= x11@FreeBSD.org diff --git a/x11-drivers/xf86-input-mouse/files/patch-src-bsd_mouse.c b/x11-drivers/xf86-input-mouse/files/patch-src-bsd_mouse.c index c2c8cade92f6..b3912fba9cea 100644 --- a/x11-drivers/xf86-input-mouse/files/patch-src-bsd_mouse.c +++ b/x11-drivers/xf86-input-mouse/files/patch-src-bsd_mouse.c @@ -1,20 +1,11 @@ --- src/bsd_mouse.c.orig 2008-11-26 23:11:36.000000000 -0500 -+++ src/bsd_mouse.c 2009-01-28 12:52:12.000000000 -0500 ++++ src/bsd_mouse.c 2009-02-02 15:44:07.000000000 -0500 @@ -1,4 +1,3 @@ - /* * Copyright (c) 1999-2003 by The XFree86 Project, Inc. * -@@ -28,6 +27,8 @@ - - #include - -+#define XPS2_SUPPORT -+ - #include - #include "xf86.h" - #include "xf86Priv.h" -@@ -75,11 +76,13 @@ +@@ -75,11 +74,13 @@ #define DEFAULT_MOUSE_DEV "/dev/mouse" #define DEFAULT_SYSMOUSE_DEV "/dev/sysmouse" #define DEFAULT_PS2_DEV "/dev/psm0" @@ -28,7 +19,7 @@ NULL }; #elif (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT) -@@ -100,7 +103,11 @@ +@@ -100,7 +101,11 @@ #if defined(__NetBSD__) return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_AUTO; #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) @@ -41,7 +32,7 @@ #else return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_XPS2 | MSE_AUTO; #endif -@@ -179,10 +186,31 @@ +@@ -179,10 +184,31 @@ { MOUSE_PROTO_THINK, "ThinkingMouse" }, { MOUSE_PROTO_SYSMOUSE, "SysMouse" } }; @@ -74,7 +65,7 @@ int i; mousehw_t hw; mousemode_t mode; -@@ -190,10 +218,20 @@ +@@ -190,10 +216,20 @@ if (pInfo->fd == -1) return NULL; @@ -96,7 +87,7 @@ /* interrogate the driver and get some intelligence on the device. */ hw.iftype = MOUSE_IF_UNKNOWN; hw.model = MOUSE_MODEL_GENERIC; -@@ -209,9 +247,18 @@ +@@ -209,9 +245,18 @@ protoPara[0] = mode.syncmask[0]; protoPara[1] = mode.syncmask[1]; } @@ -117,7 +108,7 @@ } } } -@@ -234,41 +281,41 @@ +@@ -234,41 +279,41 @@ (protocol && xf86NameCmp(protocol, "SysMouse") == 0)) { /* * As the FreeBSD sysmouse driver defaults to protocol level 0 @@ -176,7 +167,7 @@ } return FALSE; } -@@ -308,15 +355,12 @@ +@@ -308,15 +353,23 @@ devMouse = FALSE; } close(fd); @@ -190,12 +181,23 @@ - } } else { close(fd); ++ /* ++ * If moused(8) owns the device, open(2) should have failed ++ * but just in case... ++ */ + if (MousedRunning(*pdev)) + continue; ++ /* ++ * ums(4) does not support anything but SysMouse protocol. ++ */ ++ if (!strncmp(*pdev, DEFAULT_USB_DEV, 8) && protocol && ++ strcasecmp(protocol, "auto") && ++ strcasecmp(protocol, "sysmouse")) ++ continue; break; } } -@@ -782,7 +826,9 @@ +@@ -782,7 +835,9 @@ p->CheckProtocol = CheckProtocol; #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)) && defined(MOUSE_PROTO_SYSMOUSE) p->SetupAuto = SetupAuto; diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile index 153111ddd62c..03602f20ab0b 100644 --- a/x11-servers/xorg-server/Makefile +++ b/x11-servers/xorg-server/Makefile @@ -8,7 +8,7 @@ PORTNAME= xorg-server PORTVERSION= 1.5.3 PORTEPOCH= 1 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= x11-servers MASTER_SITES= http://xorg.freedesktop.org/releases/individual/xserver/ DISTFILES= xorg-server-${PORTVERSION}.tar.bz2 diff --git a/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-bsd_mouse.c b/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-bsd_mouse.c index ecb848b22600..ebfb02c8e37b 100644 --- a/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-bsd_mouse.c +++ b/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-bsd_mouse.c @@ -1,11 +1,11 @@ ---- hw/xfree86/os-support/bsd/bsd_mouse.c.orig 2007-08-23 15:05:48.000000000 -0400 -+++ hw/xfree86/os-support/bsd/bsd_mouse.c 2008-04-08 15:41:42.000000000 -0400 +--- hw/xfree86/os-support/bsd/bsd_mouse.c.orig 2008-11-05 11:52:17.000000000 -0500 ++++ hw/xfree86/os-support/bsd/bsd_mouse.c 2009-02-02 15:56:11.000000000 -0500 @@ -1,4 +1,3 @@ - /* * Copyright (c) 1999-2003 by The XFree86 Project, Inc. * -@@ -76,11 +75,15 @@ +@@ -76,11 +75,13 @@ #define DEFAULT_MOUSE_DEV "/dev/mouse" #define DEFAULT_SYSMOUSE_DEV "/dev/sysmouse" #define DEFAULT_PS2_DEV "/dev/psm0" @@ -14,14 +14,12 @@ static const char *mouseDevs[] = { DEFAULT_MOUSE_DEV, DEFAULT_SYSMOUSE_DEV, -+#ifndef CONFIG_HAL DEFAULT_PS2_DEV, + DEFAULT_USB_DEV, -+#endif NULL }; - #elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT) -@@ -101,7 +104,11 @@ + #elif (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(WSCONS_SUPPORT) +@@ -101,7 +102,11 @@ #if defined(__NetBSD__) return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_AUTO; #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) @@ -34,7 +32,7 @@ #else return MSE_SERIAL | MSE_BUS | MSE_PS2 | MSE_XPS2 | MSE_AUTO; #endif -@@ -180,10 +187,31 @@ +@@ -180,10 +185,31 @@ { MOUSE_PROTO_THINK, "ThinkingMouse" }, { MOUSE_PROTO_SYSMOUSE, "SysMouse" } }; @@ -67,7 +65,7 @@ int i; mousehw_t hw; mousemode_t mode; -@@ -191,10 +219,20 @@ +@@ -191,10 +217,20 @@ if (pInfo->fd == -1) return NULL; @@ -89,7 +87,7 @@ /* interrogate the driver and get some intelligence on the device. */ hw.iftype = MOUSE_IF_UNKNOWN; hw.model = MOUSE_MODEL_GENERIC; -@@ -210,9 +248,18 @@ +@@ -210,9 +246,18 @@ protoPara[0] = mode.syncmask[0]; protoPara[1] = mode.syncmask[1]; } @@ -110,7 +108,7 @@ } } } -@@ -235,41 +282,41 @@ +@@ -235,41 +280,41 @@ (protocol && xf86NameCmp(protocol, "SysMouse") == 0)) { /* * As the FreeBSD sysmouse driver defaults to protocol level 0 @@ -169,7 +167,7 @@ } return FALSE; } -@@ -309,15 +356,12 @@ +@@ -309,15 +354,23 @@ devMouse = FALSE; } close(fd); @@ -183,12 +181,23 @@ - } } else { close(fd); ++ /* ++ * If moused(8) owns the device, open(2) should have failed ++ * but just in case... ++ */ + if (MousedRunning(*pdev)) + continue; ++ /* ++ * ums(4) does not support anything but SysMouse protocol. ++ */ ++ if (!strncmp(*pdev, DEFAULT_USB_DEV, 8) && protocol && ++ strcasecmp(protocol, "auto") && ++ strcasecmp(protocol, "sysmouse")) ++ continue; break; } } -@@ -775,7 +819,9 @@ +@@ -775,7 +828,9 @@ p->CheckProtocol = CheckProtocol; #if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)) && defined(MOUSE_PROTO_SYSMOUSE) p->SetupAuto = SetupAuto;