[PATCH xf86-input-wacom 3/3] Add server managed fd handling

Hans de Goede hdegoede at redhat.com
Wed Mar 12 08:12:05 PDT 2014


This mostly consists of skipping common fd handling when server managed fds
are in used, the rest is handled by xf86OpenSerial and our wcmClose
xf86CloseSerial wrapper.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 src/wcmConfig.c | 5 ++++-
 src/xf86Wacom.c | 9 +++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/wcmConfig.c b/src/wcmConfig.c
index d19b9b4..9a3c8d7 100644
--- a/src/wcmConfig.c
+++ b/src/wcmConfig.c
@@ -634,7 +634,10 @@ InputDriverRec WACOM =
 	wcmUninit, /* un-init */
 	NULL,          /* module */
 #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-	default_options
+	default_options,
+#endif
+#ifdef XI86_DRV_CAP_SERVER_FD
+	XI86_DRV_CAP_SERVER_FD,
 #endif
 };
 
diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c
index 3057d7a..4f41d64 100644
--- a/src/xf86Wacom.c
+++ b/src/xf86Wacom.c
@@ -578,6 +578,10 @@ static int wcmDevOpen(DeviceIntPtr pWcm)
 
 	DBG(10, priv, "\n");
 
+	/* If fd management is done by the server, skip common fd handling */
+	if (pInfo->flags & XI86_SERVER_FD)
+		goto got_fd;
+
 	/* open file, if not already open */
 	if (common->fd_refs == 0)
 	{
@@ -610,6 +614,7 @@ static int wcmDevOpen(DeviceIntPtr pWcm)
 		common->fd_refs++;
 	}
 
+got_fd:
 	/* start the tablet data */
 	if (model->Start && (model->Start(pInfo) != Success))
 		return !Success;
@@ -754,6 +759,10 @@ static void wcmDevClose(InputInfoPtr pInfo)
 	WacomDevicePtr priv = (WacomDevicePtr)pInfo->private;
 	WacomCommonPtr common = priv->common;
 
+	/* If fd management is done by the server, skip common fd handling */
+	if (pInfo->flags & XI86_SERVER_FD)
+		return;
+
 	DBG(4, priv, "Wacom number of open devices = %d\n", common->fd_refs);
 
 	if (pInfo->fd >= 0)
-- 
1.9.0



More information about the xorg-devel mailing list