Input: iforce - add bus type and parent arguments to iforce_init_device()
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 3 Aug 2018 22:34:41 +0000 (15:34 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 23 Jun 2019 06:54:40 +0000 (23:54 -0700)
Note that the parent device for the USB-connected controllers is now
USB interface instead of USB device.

Tested-by: Tim Schumacher <timschumi@gmx.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/joystick/iforce/iforce-main.c
drivers/input/joystick/iforce/iforce-serio.c
drivers/input/joystick/iforce/iforce-usb.c
drivers/input/joystick/iforce/iforce.h

index 4401ca4a4c38fccb1448255b2ff99ecead3af71e..894769d03df35a54480e67270aad3851d46d124c 100644 (file)
@@ -221,7 +221,8 @@ static void iforce_close(struct input_dev *dev)
        iforce->xport_ops->stop_io(iforce);
 }
 
-int iforce_init_device(struct iforce *iforce)
+int iforce_init_device(struct device *parent, u16 bustype,
+                      struct iforce *iforce)
 {
        struct input_dev *input_dev;
        struct ff_device *ff;
@@ -243,20 +244,8 @@ int iforce_init_device(struct iforce *iforce)
  * Input device fields.
  */
 
-       switch (iforce->bus) {
-#ifdef CONFIG_JOYSTICK_IFORCE_USB
-       case IFORCE_USB:
-               input_dev->id.bustype = BUS_USB;
-               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->dev.parent = &iforce->serio->dev;
-               break;
-#endif
-       }
+       input_dev->id.bustype = bustype;
+       input_dev->dev.parent = parent;
 
        input_set_drvdata(input_dev, iforce);
 
index afc7521b430d01f2345c0f634ac1de56bcd82a2d..b5dea273f98e39a9398b8c554c2fbdfad3f512a6 100644 (file)
@@ -183,7 +183,7 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv)
        if (err)
                goto fail1;
 
-       err = iforce_init_device(iforce);
+       err = iforce_init_device(&serio->dev, BUS_RS232, iforce);
        if (err)
                goto fail2;
 
index 10b583b5fc826faf960178dce9aafbe66dc6cb21..824df4273774b15b52990b63ee468f35a1fc6bdb 100644 (file)
@@ -229,7 +229,7 @@ static int iforce_usb_probe(struct usb_interface *intf,
        usb_fill_control_urb(iforce->ctrl, dev, usb_rcvctrlpipe(dev, 0),
                        (void*) &iforce->cr, iforce->edata, 16, iforce_usb_ctrl, iforce);
 
-       err = iforce_init_device(iforce);
+       err = iforce_init_device(&intf->dev, BUS_USB, iforce);
        if (err)
                goto fail;
 
index c020d61eccf2e54861bec8350ff2359ad50a6613..3ee9245a415b2ebe8e4b26b8a7ab1c8032956ed6 100644 (file)
@@ -156,7 +156,8 @@ static inline int iforce_get_id_packet(struct iforce *iforce, u8* id)
 
 /* Public functions */
 /* iforce-main.c */
-int iforce_init_device(struct iforce *iforce);
+int iforce_init_device(struct device *parent, u16 bustype,
+                      struct iforce *iforce);
 
 /* iforce-packets.c */
 int iforce_control_playback(struct iforce*, u16 id, unsigned int);