[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