Hi,

I've been trying to get my wacom tablet PC working with the new udev
backend.  The digitizer is connected via a serial port and shows up as
/dev/ttyS0.  I tried the following udev rules (this is based on an older
version of the udev patches that debian and ubuntu ship, I haven't fully
comprehended yet how the driver is specified on git master)

ACTION=="add|change", SUBSYSTEM=="pnp", ATTR{id}=="WACf*",
ENV{NAME}="Serial Wacom Tablet"

ACTION=="add|change", SUBSYSTEMS=="pnp", ATTRS{id}=="WACf*",
ENV{x11_driver}="wacom"

This almost works, except that the current udev code only considers
devices whose subsystem in "input", but the subsystem of /dev/ttyS0 is
"tty".  The attached patch drops this requirement.  Is this the correct
way to re-enable support for serial input devices?

Thanks,
Tom


>From e72ebdc6887441ccfae738001995ef686d3496f8 Mon Sep 17 00:00:00 2001
From: Thomas Jaeger <thjae...@gmail.com>
Date: Mon, 4 Jan 2010 15:00:49 -0500
Subject: [PATCH] udev: Don't filter subsystem "input"

This allows serial wacom devices to work, whose subsystem is "tty".
---
 config/udev.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/config/udev.c b/config/udev.c
index 3ef0d7f..d73bef5 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -204,7 +204,6 @@ config_udev_init(void)
     struct udev *udev;
     struct udev_enumerate *enumerate;
     struct udev_list_entry *devices, *device;
-    int rc;
 
     udev = udev_new();
     if (!udev)
@@ -212,10 +211,6 @@ config_udev_init(void)
     udev_monitor = udev_monitor_new_from_netlink(udev, "udev");
     if (!udev_monitor)
         return 0;
-    rc = udev_monitor_filter_add_match_subsystem_devtype(udev_monitor,
-                                                         "input", NULL);
-    if (rc < 0)
-        return 0;
 
     if (udev_monitor_enable_receiving(udev_monitor)) {
         ErrorF("config/udev: failed to bind the udev monitor\n");
@@ -225,7 +220,6 @@ config_udev_init(void)
     enumerate = udev_enumerate_new(udev);
     if (!enumerate)
         return 0;
-    udev_enumerate_add_match_subsystem(enumerate, "input");
     udev_enumerate_scan_devices(enumerate);
     devices = udev_enumerate_get_list_entry(enumerate);
     udev_list_entry_foreach(device, devices) {
-- 
1.6.3.3

_______________________________________________
xorg-devel mailing list
xorg-devel@lists.x.org
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to