aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/joystick/xpad.c
Commit message (Collapse)AuthorAge
* Input: xpad - ensure xpad->bulk_out is initialized before submitting urbAxel Lin2010-11-18
| | | | | | | | | | | | | As pointed out by Oliver Neukum: xpad->irq_in is currently submitted before xpad->bulk_out is allocated. That however is a race, because the callback for irq_in can call xpad360w_process_packet(), which will in turn submit the bulk URB. This patch moves initialization for xpad->bulk_out earlier, so we can ensure xpad->bulk_out is initialized before submitting urb. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - remove useless check in xpad_removeDmitry Torokhov2010-11-12
| | | | | | | ixpad can never be NULL here; if it is NULL we would not have been bound to the interface and then why would we be called? Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - fix resource reclaim in xpad_probe error pathAxel Lin2010-11-12
| | | | | | | | Properly free the resources in error path by the reverse order of resource allocation. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - fix a memory leakAxel Lin2010-11-12
| | | | | | | | In xpad_led_disconnect(), what we really want is to kfree(xpad_led). In xpad_disconnect(), add a missing kfree(xpad->bdata) to fix the memory leak. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - return proper error in error pathAxel Lin2010-11-12
| | | | | | | | | | | In current implementation, xpad_probe return 0 when usb_alloc_urb failed for xpad->bulk_out and kzalloc failed for xpad->bdata. This patch removes the initialization for error variable, assign the error code at the place the error happens instead. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge branch 'next' into for-linusDmitry Torokhov2010-08-10
|\
| * Input: xpad - add USB-ID for PL-3601 Xbox 360 padChristoph Fritz2010-08-10
| | | | | | | | | | | | | | | | This patch adds USB Vendor and Product ID for Pelican PL-3601 'TSZ' Wired Xbox 360 Controller to the device table. Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Merge branch 'next' into for-linusDmitry Torokhov2010-08-02
|\|
| * Input: xpad - remove mouse buttons and axes for dance padsChristoph Fritz2010-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dance pads don't have any axes/sticks, only buttons for directions. For example buttons like left+right will get triggered at once, an axis can't handle this anyway. So this patch adds a module parameter named "sticks_to_null" for unknown devices. A known dance pad makes use of it by changing to a new mapping-option named DANCEPAD_MAP_CONFIG. Other tested devices may follow by adding this mapping-option too. Some buttons of xpad-devices are addressing mouse-buttons instead of gamepad-buttons. This gets fixed too. Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - add product ID for Hori Fighting Stick EX2Chris Merrett2010-07-26
|/ | | | | Signed-off-by: Chris Merrett <chrisfu@hardc0re.org.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* USB: rename usb_buffer_alloc() and usb_buffer_free() usersDaniel Mack2010-05-20
| | | | | | | | | | | | | | | | | | For more clearance what the functions actually do, usb_buffer_alloc() is renamed to usb_alloc_coherent() usb_buffer_free() is renamed to usb_free_coherent() They should only be used in code which really needs DMA coherency. All call sites have been changed accordingly, except for staging drivers. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Pedro Ribeiro <pedrib@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Input: xpad - add rumble support for original xbox controllerBenjamin Valentin2010-01-25
| | | | | Signed-off-by: Benjamin Valentin <benpicco@zedat.fu-berlin.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge commit 'v2.6.33-rc5' into nextDmitry Torokhov2010-01-22
|\
| * Input: xbox - do not use GFP_KERNEL under spinlockDmitry Torokhov2010-01-10
| | | | | | | | | | | | | | | | xbox_play_effect() is called while holding dev->event_lock with interrupts disabled and thus may not use GFP_KERNEL when submitting urbs. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - allow using triggers as buttons rather than axesNicolas Léveillé2009-12-30
|/ | | | | | | | | | | | | | | | Certain devices implement triggers as buttons rather than axes. In particular, arcade sticks such as the HORI Real Arcade Pro.EX do not have analog buttons. These devices are now setup to present buttons rather than axes for triggers. User-space applications often also have problems with axes-as-buttons. Activating MAP_TRIGGERS_TO_BUTTONS for a device removes the artificial difference between buttons and triggers. Signed-off-by: Nicolas Léveillé <nicolas@uucidl.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add two new Xbox 360 devicesNicolas Léveillé2009-11-30
| | | | | | | | | Added two new Xbox 360 devices: - HORI Real Arcade Pro.EX - Mad Catz SFIV Fightpad Signed-off-by: Nicolas Léveillé <nicolas@uucidl.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add BigBen Interactive XBOX 360 ControllerThomas Gruber2009-10-06
| | | | | | | | Add BigBen Interactive XBOX 360 Controller (146b:0601) to xpad driver. Signed-off-by: Thomas Gruber <kerneldev@tuxpower.org> Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add USB ID for the drumkit controller from Rock BandCorbin Simpson2009-08-21
| | | | | Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - don't resend successfully sent outgoing requestsMichael Gruber2009-07-13
| | | | | | | This avoids an infinite loop. Signed-off-by: Michael Gruber <lists.mg@googlemail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* USB: remove info() macro from usb input driversGreg Kroah-Hartman2008-10-17
| | | | | | | | USB should not be having it's own printk macros, so remove info() and use the system-wide standard of dev_info() wherever possible. Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* misc: replace __FUNCTION__ with __func__Harvey Harrison2008-10-16
| | | | | | | | __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Input: xpad - add Pelican Eclipse D-Pad to the list of devicesHarley Laue2008-07-31
| | | | | Signed-off-by: Harley Laue <losinggeneration@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: replace remaining __FUNCTION__ occurrencesHarvey Harrison2008-05-16
| | | | | | | | __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge branch 'for-linus' of ↵Linus Torvalds2008-04-27
|\ | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: xpad - fix build failure
| * Input: xpad - fix build failureDmitry Torokhov2008-04-27
| | | | | | | | | | | | | | | | | | If both CONFIG_JOYSTICK_XPAD_FF and CONFIG_JOYSTICK_XPAD_LEDS are unset xpad_bulk_out is not defined and build fails. Move it out of the #ifdef block so it is always defined. Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6Linus Torvalds2008-04-25
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (120 commits) usb: don't update devnum for wusb devices wusb: make ep0_reinit available for modules wusb: devices dont use a set address wusb: teach choose_address() about wireless devices wusb: add link wusb-usb device wusb: add authenticathed bit to usb_dev USB: remove unnecessary type casting of urb->context usb serial: more fixes and groundwork for tty changes USB: replace remaining __FUNCTION__ occurrences USB: usbfs: export the URB_NO_INTERRUPT flag to userspace USB: fix compile problems in ehci-hcd USB: ehci: qh_completions cleanup and bugfix USB: cdc-acm: signedness fix USB: add documentation about callbacks USB: don't explicitly reenable root-hub status interrupts USB: OHCI: turn off RD when remote wakeup is disabled USB: HCDs use the do_remote_wakeup flag USB: g_file_storage: ignore bulk-out data after invalid CBW USB: serial: remove endpoints setting checks from core and header USB: serial: remove unneeded number endpoints settings ...
| * USB: convert away from urb->status in xpad driverOliver Neukum2008-04-25
| | | | | | | | | | | | | | | | | | | | USB is moving to transfering status as a parameter. To ease the transition urb->status is to be touched only once in a function. The xpad driver has been overlooked. Dmitry wants this to go through the USB tree. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | Input: xpad - set proper buffer length for outgoing requestsMichael Gruber2008-04-15
| | | | | | | | | | | | | | | | | | The messages for led/rumble are exactly 3 and 8 bytes respectively. Hence set up the transfer_buffer_length accordingly. Signed-off-by: Michael Gruber <lists.mg@googlemail.com> Acked-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - don't use GFP_ATOMICOliver Neukum2008-04-03
| | | | | | | | | | | | | | GFP_ATOMIC should not be used when GFP_KERNEL can be used. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - add support for wireless xbox360 controllersBrian Magnuson2008-04-03
| | | | | | | | | | | | Signed-off-by: Brian Magnuson <bdmagnuson@gmail.com> Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - drop obsolete driver versioningAnssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | The driver version numbers and changelog have not been updated in a long while to reflect actual changes. Remove the version number and add a notice that later changes can be tracked in SCM. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - enable force feedback on xbox 360 controllers onlyAnssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | | | | | | | Commit 4994cd8dadcf9d484ab3ec19f3c7c7a4e5353c1c introduced a regression which causes xpad to report force feedback cababilities for non-360 controllers too, even while there is no actual support for those. Fix that by adding a check for XTYPE_XBOX360 to xpad_init_ff(). Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - do not report nonexistent buttons for xbox360Anssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | The buttons BTN_C and BTN_Z are only used in the original xbox controller, not in xbox360 controller. Therefore only add them to keybit when the controller is a non-360 one. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - add more xbox 360 controller idsAnssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | | | Add Mad Catz and 0x0e6f xbox360 controllers which are already found in xpad_device[] table in xpad.c into the vendor id list. Also add Logitech into the vendor list for Logitech Chillstream gamepads. Also add the RedOctane Guitar Hero X-plorer. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - fix inverted Y and RY axesAnssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit ae91d10aab2762f81733e9194cb56eff99c8d808 inverted Y and RY axes on xbox360 so that up is positive and down is negative. This is wrong, as axes on game controllers have up as negative per convention. Also, even xpad itself reports HAT0X with up as negative. Fix that by inverting them again. Also, according to http://bugzilla.kernel.org/show_bug.cgi?id=10337 the original xbox controllers also have the Y and RY axes inverted. Fix that by inverting them as well. Cc: Brian Magnuson <bdmagnuson@gmail.com> Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - fix dpad handling of unknown devicesAnssi Hannula2008-04-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For devices not specifically listed in xpad.c, xpad->dpad_mapping is initially set to MAP_DPAD_UNKNOWN. In xpad_probe() it gets changed to either MAP_DPAD_TO_BUTTONS or MAP_DPAD_TO_AXES, depending on the module parameter dpad_to_buttons. However, MAP_DPAD_UNKNOWN is defined as -1, while the field is u8. This results in actual value of 255, causing the MAP_DPAD_UNKNOWN check in xpad_probe() to fail. Fix that by defining MAP_DPAD_UNKNOWN as 2 instead. Also, setting module parameter dpad_to_buttons to 1 should obviously map dpad to buttons, while the default behaviour (0) should be to map dpad to axes. However, dpad_to_buttons is directly assigned to xpad->dpad_mapping, and as MAP_DPAD_TO_BUTTONS is 0, the actual behaviour is reversed. Fix that by negating dpad_to_buttons in assignment. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: xpad - match xbox 360 devices with interface infoAnssi Hannula2008-04-03
|/ | | | | | | | | | Match Xbox 360 controllers using the interface info, i.e. interface class 255 (Vendor specific), subclass 93 and protocol 1, instead of specifying the device ids individually. As the class is vendor-specific, we have to still match against vendor id as well, though. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: drop redundant includes of moduleparam.hJulia Lawall2008-01-21
| | | | | | | | Drop #include <linux/moduleparam.h> in files that also include linux/module.h, since module.h includes moduleparam.h already. Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add more USB IDsJoshua J Bowman2007-10-27
| | | | | | | | Add USB IDs of Mad Catz Wired Xbox 360 Controller and Pelican 'TSZ' Wired Xbox 360 Controller. Signed-off-by: Joshua J Bowman <bowmanj@augsburg.edu> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* get rid of input BIT* duplicate definesJiri Slaby2007-10-19
| | | | | | | | | | | | | | | | | | | | | | get rid of input BIT* duplicate defines use newly global defined macros for input layer. Also remove includes of input.h from non-input sources only for BIT macro definiton. Define the macro temporarily in local manner, all those local definitons will be removed further in this patchset (to not break bisecting). BIT macro will be globally defined (1<<x) Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: <dtor@mail.ru> Acked-by: Jiri Kosina <jkosina@suse.cz> Cc: <lenb@kernel.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Cc: <perex@suse.cz> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: <vernux@us.ibm.com> Cc: <malattia@linux.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Input: xpad - use le16_to_cpup when parsing data streamDmitry Torokhov2007-07-18
| | | | | | Use avaliable functions instead of doing it all manually. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add support for leds on xbox 360 padJan Kratochvil2007-07-18
| | | | | | | | | | | | | | | | | | Export LEDs on Xbox360 pad via led subsystem as a single device in /sys/class/leds/xpad[0-9]+. Xbox360 pad has four leds, which form a circle. Unfortunately the leds can't be controlled independently and can only display a predefined set of patterns (for example one is turned on wile others are off or a rotating pattern - 1-2-3-4). To activate a pattern one needs to send a specific command to the device (see http://www.free60.org/wiki/Gamepad). Led subsystem allows us to set brightness, but there is nothing like brightness on this device. So brightness is actually interpreted as the command (only values between 0 and 14 are accepted). Signed-off-by: Jan Kratochvil <honza@jikos.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - fix report for dpad and inverted Y and RY axes on xbox 360Dmitry Torokhov2007-07-10
| | | | | | | | | Make the driver report Y/RY up as positive value and down as negative. Also make DPAD mapping the same as classic xpad. Reported-by: Brian Magnuson <bdmagnuson@gmail.com> Tested-by: Jan Kratochvil <honza@jikos.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - make xpad_play_effect() staticAdrian Bunk2007-07-10
| | | | | | | xpad_play_effect() does not need to be global. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - fix check for succesful usb_buffer_allocJan Kratochvil2007-07-10
| | | | | Signed-off-by: Jan Kratochvil <honza@jikos.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add Xbox360 gamepad rumble supportJan Kratochvil2007-07-10
| | | | | | | Implementation is using force feedback support for memoryless devices. Signed-off-by: Jan Kratochvil <honza@jikos.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: xpad - add support for Xbox 360 gamepadJan Kratochvil2007-07-10
| | | | | | | | | | | | | | | | Xbox 360 gamepad is slightly different then the previous model so it has its own version of process_packet method. Detection of this new device relies on USB_DEVICE_INTERFACE_PROTOCOL macro. This device got vendor specific subclass so it can't be matched with USB_INTERFACE_INFO and we need only one interface protocol from four availaible. It means USB_DEVICE can't be used either. Added xpad360_btn structure with additional buttons for x360 gamepad. Added xtype into xpad_device structure to distinguish between different types of xbox devices. Signed-off-by: Jan Kratochvil <honza@jikos.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds2007-05-08
| | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: Input: move USB miscellaneous devices under drivers/input/misc Input: move USB mice under drivers/input/mouse Input: move USB gamepads under drivers/input/joystick Input: move USB touchscreens under drivers/input/touchscreen Input: move USB tablets under drivers/input/tablet Input: i8042 - fix AUX port detection with some chips Input: aaed2000_kbd - convert to use polldev library Input: drivers/usb/input - usb_buffer_free() cleanup Input: synaptics - don't complain about failed resets Input: pull input.h into uinpit.h Input: drivers/usb/input - fix sparse warnings (signedness) Input: evdev - fix some sparse warnings (signedness, shadowing) Input: drivers/joystick - fix various sparse warnings Input: force feedback - make sure effect is present before playing
* Input: move USB gamepads under drivers/input/joystickDmitry Torokhov2007-05-08
This will allow concentrating all input devices in one place in {menu|x|q}config. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>