Commit 501025df authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: iforce - add bus type and parent arguments to iforce_init_device()

Note that the parent device for the USB-connected controllers is now
USB interface instead of USB device.
Tested-by: default avatarTim Schumacher <timschumi@gmx.de>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 05ca3828
...@@ -221,7 +221,8 @@ static void iforce_close(struct input_dev *dev) ...@@ -221,7 +221,8 @@ static void iforce_close(struct input_dev *dev)
iforce->xport_ops->stop_io(iforce); 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 input_dev *input_dev;
struct ff_device *ff; struct ff_device *ff;
...@@ -243,20 +244,8 @@ int iforce_init_device(struct iforce *iforce) ...@@ -243,20 +244,8 @@ int iforce_init_device(struct iforce *iforce)
* Input device fields. * Input device fields.
*/ */
switch (iforce->bus) { input_dev->id.bustype = bustype;
#ifdef CONFIG_JOYSTICK_IFORCE_USB input_dev->dev.parent = parent;
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_set_drvdata(input_dev, iforce); input_set_drvdata(input_dev, iforce);
......
...@@ -183,7 +183,7 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv) ...@@ -183,7 +183,7 @@ static int iforce_serio_connect(struct serio *serio, struct serio_driver *drv)
if (err) if (err)
goto fail1; goto fail1;
err = iforce_init_device(iforce); err = iforce_init_device(&serio->dev, BUS_RS232, iforce);
if (err) if (err)
goto fail2; goto fail2;
......
...@@ -229,7 +229,7 @@ static int iforce_usb_probe(struct usb_interface *intf, ...@@ -229,7 +229,7 @@ static int iforce_usb_probe(struct usb_interface *intf,
usb_fill_control_urb(iforce->ctrl, dev, usb_rcvctrlpipe(dev, 0), usb_fill_control_urb(iforce->ctrl, dev, usb_rcvctrlpipe(dev, 0),
(void*) &iforce->cr, iforce->edata, 16, iforce_usb_ctrl, iforce); (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) if (err)
goto fail; goto fail;
......
...@@ -156,7 +156,8 @@ static inline int iforce_get_id_packet(struct iforce *iforce, u8* id) ...@@ -156,7 +156,8 @@ static inline int iforce_get_id_packet(struct iforce *iforce, u8* id)
/* Public functions */ /* Public functions */
/* iforce-main.c */ /* 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 */ /* iforce-packets.c */
int iforce_control_playback(struct iforce*, u16 id, unsigned int); int iforce_control_playback(struct iforce*, u16 id, unsigned int);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment