From: Simon Wood <simon@mungewell.org> To: linux-input@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Jiri Kosina" <jkosina@suse.cz>, Edwin <Edwin@Velds.nl>, "Michal Malý" <madcatxster@devoid-pointer.net>, "elias vanderstuyft" <elias.vds@gmail.com>, "Benjamin Tissoires" <benjamin.tissoires@redhat.com>, "Simon Wood" <simon@mungewell.org> Subject: [Patch-V2 1/6] INPUT: xpad: Add minimal support for Logitech G920 Wheel Date: Thu, 12 Nov 2015 09:25:30 -0700 [thread overview] Message-ID: <1447345535-2912-2-git-send-email-simon@mungewell.org> (raw) In-Reply-To: <1447345535-2912-1-git-send-email-simon@mungewell.org> When plugged in the Logitech G920 wheel starts with USBID 046d:c261 and behaviors as a vendor specific class. If a 'magic' byte sequence is sent the wheel will detach and reconnect as a HID device with the USBID 046d:c262. Signed-off-by: Simon Wood <simon@mungewell.org> --- drivers/input/joystick/xpad.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index fd4100d..338a3a4 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c @@ -93,6 +93,7 @@ #define MAP_STICKS_TO_NULL (1 << 2) #define DANCEPAD_MAP_CONFIG (MAP_DPAD_TO_BUTTONS | \ MAP_TRIGGERS_TO_BUTTONS | MAP_STICKS_TO_NULL) +#define SWITCH_G920_TO_HID_MODE (1 << 3) #define XTYPE_XBOX 0 #define XTYPE_XBOX360 1 @@ -134,6 +135,7 @@ static const struct xpad_device { { 0x046d, 0xc21e, "Logitech Gamepad F510", 0, XTYPE_XBOX360 }, { 0x046d, 0xc21f, "Logitech Gamepad F710", 0, XTYPE_XBOX360 }, { 0x046d, 0xc242, "Logitech Chillstream Controller", 0, XTYPE_XBOX360 }, + { 0x046d, 0xc261, "Logitech G920 Driving Force Racing Wheel", SWITCH_G920_TO_HID_MODE, XTYPE_XBOXONE }, { 0x046d, 0xca84, "Logitech Xbox Cordless Controller", 0, XTYPE_XBOX }, { 0x046d, 0xca88, "Logitech Compact Controller for Xbox", 0, XTYPE_XBOX }, { 0x05fd, 0x1007, "Mad Catz Controller (unverified)", 0, XTYPE_XBOX }, @@ -299,6 +301,7 @@ static struct usb_device_id xpad_table[] = { XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */ XPAD_XBOX360_VENDOR(0x046d), /* Logitech X-Box 360 style controllers */ + XPAD_XBOXONE_VENDOR(0x046d), /* Logitech X-Box One style controllers */ XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz X-Box 360 controllers */ { USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */ XPAD_XBOX360_VENDOR(0x0e6f), /* 0x0e6f X-Box 360 controllers */ @@ -1048,6 +1051,19 @@ static int xpad_open(struct input_dev *dev) if (usb_submit_urb(xpad->irq_in, GFP_KERNEL)) return -EIO; + /* Logitect G920 wheel starts in XBOX mode, but is reconfigured to be HID */ + /* device with USBID of 046D:C262. Wheel will detach when 'magic' is sent. */ + if (xpad->mapping & SWITCH_G920_TO_HID_MODE) { + xpad->odata[0] = 0x0F; + xpad->odata[1] = 0x00; + xpad->odata[2] = 0x01; + xpad->odata[3] = 0x01; + xpad->odata[4] = 0x42; + xpad->irq_out->transfer_buffer_length = 5; + + return usb_submit_urb(xpad->irq_out, GFP_KERNEL); + } + if (xpad->xtype == XTYPE_XBOXONE) { /* Xbox one controller needs to be initialized. */ xpad->odata[0] = 0x05; -- 2.1.4
next prev parent reply other threads:[~2015-11-12 16:25 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-11-12 16:25 [Patch-V2 0/6] HID: Support for the " Simon Wood 2015-11-12 16:25 ` Simon Wood [this message] 2015-11-19 13:50 ` [Patch-V2 1/6] INPUT: xpad: Add minimal support for " Jiri Kosina 2015-11-19 18:31 ` Dmitry Torokhov 2015-11-19 18:35 ` Simon Wood 2015-11-19 23:19 ` Edwin 2015-12-10 1:23 ` Dmitry Torokhov 2015-12-10 1:39 ` Dmitry Torokhov 2015-12-10 17:08 ` Benjamin Tissoires 2015-12-10 18:40 ` Dmitry Torokhov 2016-01-04 9:55 ` Benjamin Tissoires 2016-01-04 12:43 ` madcatxster 2016-01-04 12:43 ` madcatxster [not found] ` <568ad0ae.ea3d320a.6acab.2b84SMTPIN_ADDED_MISSING@mx.google.com> 2016-01-05 1:01 ` Dmitry Torokhov 2016-01-06 14:36 ` Jiri Kosina 2016-01-07 1:47 ` Dmitry Torokhov 2016-01-07 4:25 ` Simon Wood 2016-01-07 22:50 ` Michal Malý 2016-01-07 22:53 ` Dmitry Torokhov 2016-01-07 22:53 ` Dmitry Torokhov 2016-01-07 23:05 ` Michal Malý 2016-01-07 23:05 ` Michal Malý 2016-01-08 9:11 ` Jiri Kosina 2015-12-13 12:50 ` Elias Vanderstuyft 2015-11-12 16:25 ` [Patch-V2 2/6] HID: hid-logitech-hidpp: Add support for very long packets Simon Wood 2015-11-12 16:25 ` [Patch-V2 3/6] HID: hid-logitech-hidpp: Add basic support for Logitech G920 Simon Wood 2015-11-19 11:18 ` Benjamin Tissoires 2015-11-12 16:25 ` [Patch-V2 4/6] HID: hid-logitech-hidpp: Add range sysfs " Simon Wood 2015-11-12 16:25 ` [Patch-V2 5/6] HID: Add vendor specific usage pages " Simon Wood 2015-11-12 16:25 ` [Patch-V2 6/6] HID: hid-logitech-hidpp: G920 remove deadzones Simon Wood 2015-11-12 16:32 ` [Patch-V2 0/6] HID: Support for the Logitech G920 Wheel Simon Wood 2015-11-19 10:04 ` Jiri Kosina 2015-11-19 11:23 ` Benjamin Tissoires
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1447345535-2912-2-git-send-email-simon@mungewell.org \ --to=simon@mungewell.org \ --cc=Edwin@Velds.nl \ --cc=benjamin.tissoires@redhat.com \ --cc=elias.vds@gmail.com \ --cc=jkosina@suse.cz \ --cc=linux-input@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=madcatxster@devoid-pointer.net \ --subject='Re: [Patch-V2 1/6] INPUT: xpad: Add minimal support for Logitech G920 Wheel' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.