That's not the behavior I'm seeing. In jstest's output, every axis that's mapped to a button rests at -32767 and moves through 0 to 32767, and every axis that maps to an analog stick rests at 0 and moves from -32767 to 32767. This seems perfectly reasonable. The only oddity I see in the jstest output are "dead" buttons and axes (two buttons are always off no matter how I manipulate the controller, and a number of axes always show the same arbitrary values and never change).
For what it's worth, the Linux sixaxis "driver" (at least in 2.6.28) is actually the regular USB HID driver with a quirk compensation to properly initialize the controller. Once the controller is initialized, it is treated as a fully HID-compliant joystick, and it responds in kind. I can only guess that there's something wrong internally in the utilities you are using for testing.
While I'm at it, the stuck buttons cannot possibly have anything to do with the way the kernel represents the controller. In Strikers 1945 II for instance, the coin switch was constantly held high unless I went into menus, and Coin 1 was btn0, Coin 2 was 6 on the keyboard.
Last edited by roothorick; 12/28/08 04:50 PM.