Commit 4f99de6d authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: iforce - split into core and transport modules

Now that we have moved enough transport details into separate source files
we can change them into transport modules so that they are only loaded when
needed.
Tested-by: default avatarTim Schumacher <timschumi@gmx.de>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 81fd4313
...@@ -13,15 +13,15 @@ config JOYSTICK_IFORCE ...@@ -13,15 +13,15 @@ config JOYSTICK_IFORCE
module will be called iforce. module will be called iforce.
config JOYSTICK_IFORCE_USB config JOYSTICK_IFORCE_USB
bool "I-Force USB joysticks and wheels" tristate "I-Force USB joysticks and wheels"
depends on JOYSTICK_IFORCE && (JOYSTICK_IFORCE=m || USB=y) && USB depends on JOYSTICK_IFORCE && USB
help help
Say Y here if you have an I-Force joystick or steering wheel Say Y here if you have an I-Force joystick or steering wheel
connected to your USB port. connected to your USB port.
config JOYSTICK_IFORCE_232 config JOYSTICK_IFORCE_232
bool "I-Force Serial joysticks and wheels" tristate "I-Force Serial joysticks and wheels"
depends on JOYSTICK_IFORCE && (JOYSTICK_IFORCE=m || SERIO=y) && SERIO depends on JOYSTICK_IFORCE && SERIO
help help
Say Y here if you have an I-Force joystick or steering wheel Say Y here if you have an I-Force joystick or steering wheel
connected to your serial (COM) port. connected to your serial (COM) port.
......
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
# By Johann Deneux <johann.deneux@gmail.com> # By Johann Deneux <johann.deneux@gmail.com>
# #
obj-$(CONFIG_JOYSTICK_IFORCE) += iforce.o obj-$(CONFIG_JOYSTICK_IFORCE) += iforce.o
iforce-y := iforce-ff.o iforce-main.o iforce-packets.o iforce-y := iforce-ff.o iforce-main.o iforce-packets.o
iforce-$(CONFIG_JOYSTICK_IFORCE_232) += iforce-serio.o obj-$(CONFIG_JOYSTICK_IFORCE_232) += iforce-serio.o
iforce-$(CONFIG_JOYSTICK_IFORCE_USB) += iforce-usb.o obj-$(CONFIG_JOYSTICK_IFORCE_USB) += iforce-usb.o
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "iforce.h" #include "iforce.h"
MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>, Johann Deneux <johann.deneux@gmail.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_DESCRIPTION("Core I-Force joysticks and wheels driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static signed short btn_joystick[] = static signed short btn_joystick[] =
...@@ -411,35 +411,4 @@ int iforce_init_device(struct device *parent, u16 bustype, ...@@ -411,35 +411,4 @@ int iforce_init_device(struct device *parent, u16 bustype,
fail: input_free_device(input_dev); fail: input_free_device(input_dev);
return error; return error;
} }
EXPORT_SYMBOL(iforce_init_device);
static int __init iforce_init(void)
{
int err = 0;
#ifdef CONFIG_JOYSTICK_IFORCE_USB
err = usb_register(&iforce_usb_driver);
if (err)
return err;
#endif
#ifdef CONFIG_JOYSTICK_IFORCE_232
err = serio_register_driver(&iforce_serio_drv);
#ifdef CONFIG_JOYSTICK_IFORCE_USB
if (err)
usb_deregister(&iforce_usb_driver);
#endif
#endif
return err;
}
static void __exit iforce_exit(void)
{
#ifdef CONFIG_JOYSTICK_IFORCE_USB
usb_deregister(&iforce_usb_driver);
#endif
#ifdef CONFIG_JOYSTICK_IFORCE_232
serio_unregister_driver(&iforce_serio_drv);
#endif
}
module_init(iforce_init);
module_exit(iforce_exit);
...@@ -96,6 +96,7 @@ int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data) ...@@ -96,6 +96,7 @@ int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data)
return 0; return 0;
} }
EXPORT_SYMBOL(iforce_send_packet);
/* Start or stop an effect */ /* Start or stop an effect */
int iforce_control_playback(struct iforce* iforce, u16 id, unsigned int value) int iforce_control_playback(struct iforce* iforce, u16 id, unsigned int value)
...@@ -203,3 +204,4 @@ void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data) ...@@ -203,3 +204,4 @@ void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data)
break; break;
} }
} }
EXPORT_SYMBOL(iforce_process_packet);
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <linux/serio.h>
#include "iforce.h" #include "iforce.h"
struct iforce_serio { struct iforce_serio {
...@@ -250,3 +251,9 @@ struct serio_driver iforce_serio_drv = { ...@@ -250,3 +251,9 @@ struct serio_driver iforce_serio_drv = {
.connect = iforce_serio_connect, .connect = iforce_serio_connect,
.disconnect = iforce_serio_disconnect, .disconnect = iforce_serio_disconnect,
}; };
module_serio_driver(iforce_serio_drv);
MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>, Johann Deneux <johann.deneux@gmail.com>");
MODULE_DESCRIPTION("RS232 I-Force joysticks and wheels driver");
MODULE_LICENSE("GPL");
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include <linux/usb.h>
#include "iforce.h" #include "iforce.h"
struct iforce_usb { struct iforce_usb {
...@@ -316,3 +317,9 @@ struct usb_driver iforce_usb_driver = { ...@@ -316,3 +317,9 @@ struct usb_driver iforce_usb_driver = {
.disconnect = iforce_usb_disconnect, .disconnect = iforce_usb_disconnect,
.id_table = iforce_usb_ids, .id_table = iforce_usb_ids,
}; };
module_usb_driver(iforce_usb_driver);
MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>, Johann Deneux <johann.deneux@gmail.com>");
MODULE_DESCRIPTION("USB I-Force joysticks and wheels driver");
MODULE_LICENSE("GPL");
...@@ -26,8 +26,6 @@ ...@@ -26,8 +26,6 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/usb.h>
#include <linux/serio.h>
#include <linux/circ_buf.h> #include <linux/circ_buf.h>
#include <linux/mutex.h> #include <linux/mutex.h>
......
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