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 <hdego...@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

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to