Bug 7193

Summary: drivers/usb/input/xpad.c is extremely old and doesn't work with my controller
Product: Drivers Reporter: Charles Joseph Christie II (cchris0396)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: REJECTED INSUFFICIENT_DATA    
Severity: normal CC: protasnb, sarrazip
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.18 Subsystem:
Regression: --- Bisected commit-id:
Bug Depends on:    
Bug Blocks: 5089    
Attachments: xpad (xbox 360 joypad)

Description Charles Joseph Christie II 2006-09-23 16:16:20 UTC
Most recent kernel where this bug did not occur: Same driver (0.0.5) for all of 
them
Distribution: Gentoo Linux 2006.1
Hardware Environment: Compaq Deskpro EN P1.0
Software Environment: emerge --info (with unimportant things cut):
System uname: 2.6.17-gentoo-r8-omg-optimized i686 Pentium III (Coppermine)
Gentoo Base System version 1.12.4
Last Sync: Fri, 22 Sep 2006 00:30:01 +0000
ccache version 2.4 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.6-r1, 2.0.28-r1
dev-lang/python:     2.4.3-r3
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r6
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="-O2 -march=pentium3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict"
LC_ALL="en_US.UTF-8"
LINGUAS="en en_US"

Problem Description: The main kernel includes an xbox controller driver. 
However, it is ancient. The latest version is 0.1.6, while the kernel runs 
version 0.0.5. This driver was, as it says, hacked together in a few hours, and 
does not have proper support for many things... for instance, the right 
thumbstick is inverted, and dance pads don't work properly (in the new drivers, 
the arrows are properly mapped as buttons. In this driver, however, they are 
not). Also, there is no support for the Xbox 360 controller in the kernel's 
version.

Steps to reproduce: Compile with xbox controller support, and plug in a 
controller. Chances are that the right thumbstick will be inverted. Next, plug 
in a dance pad and you'll see that it maps the arrows to axis, which makes 
pushing two buttons at the same time impossible (and ruins my score <_< )

If you want to know where to get the latest drivers created for the 2.6 series 
kernels, you can check here:
http://xbox.cvs.sourceforge.net/xbox-linux/kernel-2.6/drivers/usb/input/?hideattic=1
Comment 1 Adam Buchbinder 2006-11-06 07:14:29 UTC
Dance pad support, at least, has been ported to the mainline kernel; the first
release after the commit was 2.6.19-rc3. See the commit here:

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=deb8ee43a23d48116cb23eb8dd1de2348efb1e80

And there's just recently (two days ago) been an update to detect many more
dance pads and automatically map the d-pad to buttons instead of axes here:

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d518b2b48a9c11fc381b179709f5321bce1f3b39

The dance pad support part was addressed in bug 7070, but the right thumbstick 
and lack of 360 support parts were not.
Comment 2 Marco Rodrigues 2007-04-24 15:35:01 UTC
Created attachment 11263 [details]
xpad (xbox 360 joypad)
Comment 3 Marco Rodrigues 2007-08-24 06:57:12 UTC
How about to update this on 2.6.23 ?
Comment 4 Natalie Protasevich 2008-03-30 00:17:08 UTC
Adam, were you able to test with recent kernels?
Thanks.