Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c6118e4 authored by Hendrik Iben's avatar Hendrik Iben Committed by Jiri Kosina
Browse files

HID: force feedback support for Logitech RumblePad gamepad



This patch adds force feedback support for Logitech WingMan RumblePad
gamepads by extending the Logitech Rumblepad 2 force feedback code.

Signed-off-by: default avatarHendrik Iben <Hendrik_Iben@web.de>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 32c88cbc
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -220,12 +220,12 @@ config LOGITECH_FF
	  force feedback.
	  force feedback.


config LOGIRUMBLEPAD2_FF
config LOGIRUMBLEPAD2_FF
	bool "Logitech Rumblepad 2 force feedback support"
	bool "Logitech RumblePad/Rumblepad 2 force feedback support"
	depends on HID_LOGITECH
	depends on HID_LOGITECH
	select INPUT_FF_MEMLESS
	select INPUT_FF_MEMLESS
	help
	help
	  Say Y here if you want to enable force feedback support for Logitech
	  Say Y here if you want to enable force feedback support for Logitech
	  Rumblepad 2 devices.
	  RumblePad and Rumblepad 2 devices.


config LOGIG940_FF
config LOGIG940_FF
	bool "Logitech Flight System G940 force feedback support"
	bool "Logitech Flight System G940 force feedback support"
+1 −0
Original line number Original line Diff line number Diff line
@@ -1326,6 +1326,7 @@ static const struct hid_device_id hid_blacklist[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WINGMAN_F3D) },
+1 −0
Original line number Original line Diff line number Diff line
@@ -339,6 +339,7 @@
#define USB_DEVICE_ID_LOGITECH_RECEIVER	0xc101
#define USB_DEVICE_ID_LOGITECH_RECEIVER	0xc101
#define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST  0xc110
#define USB_DEVICE_ID_LOGITECH_HARMONY_FIRST  0xc110
#define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f
#define USB_DEVICE_ID_LOGITECH_HARMONY_LAST 0xc14f
#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD	0xc20a
#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD	0xc211
#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD	0xc211
#define USB_DEVICE_ID_LOGITECH_EXTREME_3D	0xc215
#define USB_DEVICE_ID_LOGITECH_EXTREME_3D	0xc215
#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2	0xc218
#define USB_DEVICE_ID_LOGITECH_RUMBLEPAD2	0xc218
+3 −0
Original line number Original line Diff line number Diff line
@@ -7,6 +7,7 @@
 *  Copyright (c) 2006-2007 Jiri Kosina
 *  Copyright (c) 2006-2007 Jiri Kosina
 *  Copyright (c) 2007 Paul Walmsley
 *  Copyright (c) 2007 Paul Walmsley
 *  Copyright (c) 2008 Jiri Slaby
 *  Copyright (c) 2008 Jiri Slaby
 *  Copyright (c) 2010 Hendrik Iben
 */
 */


/*
/*
@@ -361,6 +362,8 @@ static const struct hid_device_id lg_devices[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL),
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL),
		.driver_data = LG_NOGET | LG_FF },
		.driver_data = LG_NOGET | LG_FF },


	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD_CORD),
		.driver_data = LG_FF2 },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD),
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD),
		.driver_data = LG_FF },
		.driver_data = LG_FF },
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2),
	{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2_2),
+2 −2
Original line number Original line Diff line number Diff line
/*
/*
 *  Force feedback support for Logitech Rumblepad 2
 *  Force feedback support for Logitech RumblePad and Rumblepad 2
 *
 *
 *  Copyright (c) 2008 Anssi Hannula <anssi.hannula@gmail.com>
 *  Copyright (c) 2008 Anssi Hannula <anssi.hannula@gmail.com>
 */
 */
@@ -110,7 +110,7 @@ int lg2ff_init(struct hid_device *hid)


	usbhid_submit_report(hid, report, USB_DIR_OUT);
	usbhid_submit_report(hid, report, USB_DIR_OUT);


	dev_info(&hid->dev, "Force feedback for Logitech Rumblepad 2 by "
	dev_info(&hid->dev, "Force feedback for Logitech RumblePad/Rumblepad 2 by "
	       "Anssi Hannula <anssi.hannula@gmail.com>\n");
	       "Anssi Hannula <anssi.hannula@gmail.com>\n");


	return 0;
	return 0;