diff options
Diffstat (limited to 'drivers/hid/hid-mf.c')
-rw-r--r-- | drivers/hid/hid-mf.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/hid/hid-mf.c b/drivers/hid/hid-mf.c index d9090765a6e5..03f10516131d 100644 --- a/drivers/hid/hid-mf.c +++ b/drivers/hid/hid-mf.c @@ -6,12 +6,14 @@ * * Tested with: * 0079:1801 "DragonRise Inc. Mayflash PS3 Game Controller Adapter" + * 0079:1803 "DragonRise Inc. Mayflash Wireless Sensor DolphinBar" + * 0079:1843 "DragonRise Inc. Mayflash GameCube Game Controller Adapter" + * 0079:1844 "DragonRise Inc. Mayflash GameCube Game Controller Adapter (v04)" * * The following adapters probably work too, but need to be tested: * 0079:1800 "DragonRise Inc. Mayflash WIIU Game Controller Adapter" - * 0079:1843 "DragonRise Inc. Mayflash GameCube Game Controller Adapter" * - * Copyright (c) 2016 Marcel Hasler <mahasler@gmail.com> + * Copyright (c) 2016-2017 Marcel Hasler <mahasler@gmail.com> */ /* @@ -125,8 +127,8 @@ static int mf_probe(struct hid_device *hid, const struct hid_device_id *id) dev_dbg(&hid->dev, "Mayflash HID hardware probe...\n"); - /* Split device into four inputs */ - hid->quirks |= HID_QUIRK_MULTI_INPUT; + /* Apply quirks as needed */ + hid->quirks |= id->driver_data; error = hid_parse(hid); if (error) { @@ -151,7 +153,14 @@ static int mf_probe(struct hid_device *hid, const struct hid_device_id *id) } static const struct hid_device_id mf_devices[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3), }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_PS3), + .driver_data = HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_DOLPHINBAR), + .driver_data = HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE1), + .driver_data = HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, USB_DEVICE_ID_DRAGONRISE_GAMECUBE2), + .driver_data = 0 }, /* No quirk required */ { } }; MODULE_DEVICE_TABLE(hid, mf_devices); |