]> err.no Git - linux-2.6/blobdiff - drivers/input/joystick/iforce/iforce-main.c
gxfb/lxfb: use VSA definitions when fetching framebuffer size
[linux-2.6] / drivers / input / joystick / iforce / iforce-main.c
index 3393a37fec399593ad4dd0f264e401157f80300d..a2517fa72eb8e06a15b47c1d9ae94a253258f30d 100644 (file)
@@ -2,7 +2,7 @@
  * $Id: iforce-main.c,v 1.19 2002/07/07 10:22:50 jdeneux Exp $
  *
  *  Copyright (c) 2000-2002 Vojtech Pavlik <vojtech@ucw.cz>
- *  Copyright (c) 2001-2002 Johann Deneux <deneux@ifrance.com>
+ *  Copyright (c) 2001-2002, 2007 Johann Deneux <johann.deneux@gmail.com>
  *
  *  USB/RS232 I-Force joysticks and wheels.
  */
@@ -29,7 +29,7 @@
 
 #include "iforce.h"
 
-MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>, Johann Deneux <deneux@ifrance.com>");
+MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>, Johann Deneux <johann.deneux@gmail.com>");
 MODULE_DESCRIPTION("USB/RS232 I-Force joysticks and wheels driver");
 MODULE_LICENSE("GPL");
 
@@ -85,7 +85,7 @@ static struct iforce_device iforce_device[] = {
 
 static int iforce_playback(struct input_dev *dev, int effect_id, int value)
 {
-       struct iforce* iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        struct iforce_core_effect *core_effect = &iforce->core_effects[effect_id];
 
        if (value > 0)
@@ -99,7 +99,7 @@ static int iforce_playback(struct input_dev *dev, int effect_id, int value)
 
 static void iforce_set_gain(struct input_dev *dev, u16 gain)
 {
-       struct iforce* iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        unsigned char data[3];
 
        data[0] = gain >> 9;
@@ -108,7 +108,7 @@ static void iforce_set_gain(struct input_dev *dev, u16 gain)
 
 static void iforce_set_autocenter(struct input_dev *dev, u16 magnitude)
 {
-       struct iforce* iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        unsigned char data[3];
 
        data[0] = 0x03;
@@ -126,7 +126,7 @@ static void iforce_set_autocenter(struct input_dev *dev, u16 magnitude)
  */
 static int iforce_upload_effect(struct input_dev *dev, struct ff_effect *effect, struct ff_effect *old)
 {
-       struct iforce* iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        struct iforce_core_effect *core_effect = &iforce->core_effects[effect->id];
        int ret;
 
@@ -173,7 +173,7 @@ static int iforce_upload_effect(struct input_dev *dev, struct ff_effect *effect,
  */
 static int iforce_erase_effect(struct input_dev *dev, int effect_id)
 {
-       struct iforce *iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        struct iforce_core_effect *core_effect = &iforce->core_effects[effect_id];
        int err = 0;
 
@@ -191,7 +191,7 @@ static int iforce_erase_effect(struct input_dev *dev, int effect_id)
 
 static int iforce_open(struct input_dev *dev)
 {
-       struct iforce *iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
 
        switch (iforce->bus) {
 #ifdef CONFIG_JOYSTICK_IFORCE_USB
@@ -213,14 +213,14 @@ static int iforce_open(struct input_dev *dev)
 
 static void iforce_release(struct input_dev *dev)
 {
-       struct iforce *iforce = dev->private;
+       struct iforce *iforce = input_get_drvdata(dev);
        int i;
 
        if (test_bit(EV_FF, dev->evbit)) {
                /* Check: no effects should be present in memory */
                for (i = 0; i < dev->ff->max_effects; i++) {
                        if (test_bit(FF_CORE_IS_USED, iforce->core_effects[i].flags)) {
-                               printk(KERN_WARNING "iforce_release: Device still owns effects\n");
+                               warn("iforce_release: Device still owns effects");
                                break;
                        }
                }
@@ -232,7 +232,7 @@ static void iforce_release(struct input_dev *dev)
        switch (iforce->bus) {
 #ifdef CONFIG_JOYSTICK_IFORCE_USB
                case IFORCE_USB:
-                       usb_unlink_urb(iforce->irq);
+                       usb_kill_urb(iforce->irq);
 
                        /* The device was unplugged before the file
                         * was released */
@@ -287,18 +287,19 @@ int iforce_init_device(struct iforce *iforce)
 #ifdef CONFIG_JOYSTICK_IFORCE_USB
        case IFORCE_USB:
                input_dev->id.bustype = BUS_USB;
-               input_dev->cdev.dev = &iforce->usbdev->dev;
+               input_dev->dev.parent = &iforce->usbdev->dev;
                break;
 #endif
 #ifdef CONFIG_JOYSTICK_IFORCE_232
        case IFORCE_232:
                input_dev->id.bustype = BUS_RS232;
-               input_dev->cdev.dev = &iforce->serio->dev;
+               input_dev->dev.parent = &iforce->serio->dev;
                break;
 #endif
        }
 
-       input_dev->private = iforce;
+       input_set_drvdata(input_dev, iforce);
+
        input_dev->name = "Unknown I-Force device";
        input_dev->open = iforce_open;
        input_dev->close = iforce_release;
@@ -324,7 +325,7 @@ int iforce_init_device(struct iforce *iforce)
                        break;
 
        if (i == 20) { /* 5 seconds */
-               printk(KERN_ERR "iforce-main.c: Timeout waiting for response from device.\n");
+               err("Timeout waiting for response from device.");
                error = -ENODEV;
                goto fail;
        }
@@ -336,26 +337,26 @@ int iforce_init_device(struct iforce *iforce)
        if (!iforce_get_id_packet(iforce, "M"))
                input_dev->id.vendor = (iforce->edata[2] << 8) | iforce->edata[1];
        else
-               printk(KERN_WARNING "iforce-main.c: Device does not respond to id packet M\n");
+               warn("Device does not respond to id packet M");
 
        if (!iforce_get_id_packet(iforce, "P"))
                input_dev->id.product = (iforce->edata[2] << 8) | iforce->edata[1];
        else
-               printk(KERN_WARNING "iforce-main.c: Device does not respond to id packet P\n");
+               warn("Device does not respond to id packet P");
 
        if (!iforce_get_id_packet(iforce, "B"))
                iforce->device_memory.end = (iforce->edata[2] << 8) | iforce->edata[1];
        else
-               printk(KERN_WARNING "iforce-main.c: Device does not respond to id packet B\n");
+               warn("Device does not respond to id packet B");
 
        if (!iforce_get_id_packet(iforce, "N"))
                ff_effects = iforce->edata[1];
        else
-               printk(KERN_WARNING "iforce-main.c: Device does not respond to id packet N\n");
+               warn("Device does not respond to id packet N");
 
        /* Check if the device can store more effects than the driver can really handle */
        if (ff_effects > IFORCE_EFFECTS_MAX) {
-               printk(KERN_WARNING "iforce: Limiting number of effects to %d (device reports %d)\n",
+               warn("Limiting number of effects to %d (device reports %d)",
                       IFORCE_EFFECTS_MAX, ff_effects);
                ff_effects = IFORCE_EFFECTS_MAX;
        }
@@ -370,10 +371,8 @@ int iforce_init_device(struct iforce *iforce)
 
 /*
  * Disable spring, enable force feedback.
- * FIXME: We should use iforce_set_autocenter() et al here.
  */
-
-       iforce_send_packet(iforce, FF_CMD_AUTOCENTER, "\004\000");
+       iforce_set_autocenter(input_dev, 0);
 
 /*
  * Find appropriate device entry
@@ -391,7 +390,8 @@ int iforce_init_device(struct iforce *iforce)
  * Set input device bitfields and ranges.
  */
 
-       input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_FF_STATUS);
+       input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) |
+               BIT_MASK(EV_FF_STATUS);
 
        for (i = 0; iforce->type->btn[i] >= 0; i++)
                set_bit(iforce->type->btn[i], input_dev->keybit);
@@ -457,8 +457,6 @@ int iforce_init_device(struct iforce *iforce)
        if (error)
                goto fail;
 
-       printk(KERN_DEBUG "iforce->dev->open = %p\n", iforce->dev->open);
-
        return 0;
 
  fail: input_free_device(input_dev);