Input: aiptek - do not try to export associated event device
authorDmitry Torokhov <dtor@insightbb.com>
Mon, 21 May 2007 04:17:12 +0000 (00:17 -0400)
committerDmitry Torokhov <dtor@insightbb.com>
Tue, 10 Jul 2007 04:35:15 +0000 (00:35 -0400)
Do not try to export via sysfs associated event device - it does not
work when evdev is a module that is loaded after aiptek; also it pokes
too deply into input core internals.

Userspace should rely on udev to set up permanent device name for
the tablet.

Signed-off-by: Rene van Paassen <rene.vanpaassen@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/tablet/aiptek.c

index cc0a498..c4df4f7 100644 (file)
@@ -294,7 +294,6 @@ struct aiptek_features {
        int modelCode;          /* Tablet model code (not unique) */
        int firmwareCode;       /* prom/eeprom version            */
        char usbPath[64 + 1];   /* device's physical usb path     */
-       char inputPath[64 + 1]; /* input device path              */
 };
 
 struct aiptek_settings {
@@ -1415,23 +1414,6 @@ static DEVICE_ATTR(delay,
                   show_tabletProgrammableDelay, store_tabletProgrammableDelay);
 
 /***********************************************************************
- * support routines for the 'input_path' file. Note that this file
- * only displays current setting.
- */
-static ssize_t show_tabletInputDevice(struct device *dev, struct device_attribute *attr, char *buf)
-{
-       struct aiptek *aiptek = dev_get_drvdata(dev);
-
-       if (aiptek == NULL)
-               return 0;
-
-       return snprintf(buf, PAGE_SIZE, "/dev/input/%s\n",
-                       aiptek->features.inputPath);
-}
-
-static DEVICE_ATTR(input_path, S_IRUGO, show_tabletInputDevice, NULL);
-
-/***********************************************************************
  * support routines for the 'event_count' file. Note that this file
  * only displays current setting.
  */
@@ -1896,7 +1878,6 @@ static void aiptek_delete_files(struct device *dev)
        device_remove_file(dev, &dev_attr_ytilt);
        device_remove_file(dev, &dev_attr_jitter);
        device_remove_file(dev, &dev_attr_delay);
-       device_remove_file(dev, &dev_attr_input_path);
        device_remove_file(dev, &dev_attr_event_count);
        device_remove_file(dev, &dev_attr_diagnostic);
        device_remove_file(dev, &dev_attr_odm_code);
@@ -1931,7 +1912,6 @@ static int aiptek_add_files(struct device *dev)
            (ret = device_create_file(dev, &dev_attr_ytilt)) ||
            (ret = device_create_file(dev, &dev_attr_jitter)) ||
            (ret = device_create_file(dev, &dev_attr_delay)) ||
-           (ret = device_create_file(dev, &dev_attr_input_path)) ||
            (ret = device_create_file(dev, &dev_attr_event_count)) ||
            (ret = device_create_file(dev, &dev_attr_diagnostic)) ||
            (ret = device_create_file(dev, &dev_attr_odm_code)) ||
@@ -1961,8 +1941,6 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
        struct usb_endpoint_descriptor *endpoint;
        struct aiptek *aiptek;
        struct input_dev *inputdev;
-       struct input_handle *inputhandle;
-       struct list_head *node, *next;
        int i;
        int speeds[] = { 0,
                AIPTEK_PROGRAMMABLE_DELAY_50,
@@ -2140,21 +2118,6 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
        if (err)
                goto fail2;
 
-       /* We now will look for the evdev device which is mapped to
-        * the tablet. The partial name is kept in the link list of
-        * input_handles associated with this input device.
-        * What identifies an evdev input_handler is that it begins
-        * with 'event', continues with a digit, and that in turn
-        * is mapped to input/eventN.
-        */
-       list_for_each_safe(node, next, &inputdev->h_list) {
-               inputhandle = to_handle(node);
-               if (strncmp(inputhandle->name, "event", 5) == 0) {
-                       strcpy(aiptek->features.inputPath, inputhandle->name);
-                       break;
-               }
-       }
-
        /* Associate this driver's struct with the usb interface.
         */
        usb_set_intfdata(intf, aiptek);
@@ -2163,11 +2126,6 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
         */
        aiptek_add_files(&intf->dev);
 
-       /* Make sure the evdev module is loaded. Assuming evdev IS a module :-)
-        */
-       if (request_module("evdev") != 0)
-               info("aiptek: error loading 'evdev' module");
-
        return 0;
 
  fail2:        usb_buffer_free(usbdev, AIPTEK_PACKET_LENGTH, aiptek->data,