lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 10 Nov 2014 21:15:08 +0900
From:	Daniel Dressler <>
To:	Thomaz de Oliveira dos Reis <>
Cc:	Jonathan Corbet <>,
	Dmitry Torokhov <>,
	Tommi Rantala <>,
	Ted Mielczarek <>,
	Paul Gortmaker <>,
	Frank Razenberg <>,
	Benjamin Valentin <>,
	Petr Sebor <>,
	"open list:DOCUMENTATION" <>,
	open list <>,
Subject: Re: [PATCH 1/1] Input: xpad - update docs to reflect current state

I'd love to make all controllers report as axises but doing so _will_
break stuff downstream. Not least of which being every game which uses
SDL2's controller configs:

Which is just about every-single major commercial proprietary game
which has been ported to linux in the past 2 years.

Now it should also be clear that adding extra axises will not break
those games. The SDL2 library should just ignore those axises.

Also, the module option "dpad_to_buttons" will only operate on unknown
devices. Users cannot use it to return to old behavior so we have to
get this right.


2014-11-10 20:47 GMT+09:00 Thomaz de Oliveira dos Reis <>:
> I totally agree that the behavior should be exactly the same in all
> XBOX gamepads. But In my opinion this should be mapped as axis only,
> since mapping for both could make a confusion in some games.
> If you need the axis to be buttons, you can set as a option while
> loading the module.
> 2014-11-10 6:06 GMT-02:00 Daniel Dressler <>:
>> Thanks Jon
>> I've sent a second version of the patch without the TODO list edits.
>> Now I would like to ask about a backwards compact issue related to this driver.
>> Eons ago in patch 99de0912b [0] when support for the wireless 360
>> controllers were added the decision was made to map their Dpad to the
>> discrete buttons.
>> There is reasonable justification for this behavior since the Dpad has
>> never functioned like an analog stick on Xbox hardware.
>> Except support for wired 360 controllers had been added a year earlier
>> and used the opposite behavior. In fact the wireless 360 controllers
>> are the only controllers which use the dpad_to_button behavior.
>> Original Xbox, wired Xbox 360, and all Xbox One controllers all expose
>> the dpad as a set of axises.
>> This has caused pain for downstream developers. It means two
>> controllers  have wildly different behavior. Many developers have just
>> ignored the issue or suggested users unload xpand and use the userland
>> replacement. Even Arch's wiki suggests such [1]. Which to be honest is
>> all one can do. The xpad driver does not expose the information
>> developers need to even incorporate a workaround without nasty hacks.
>> As a downstream developer I've been bitten by this twice. The first
>> time I didn't even know that wired vs wireless made a difference and I
>> was disturbed to learn the truth.
>> So here is what I want to hear opinions on: should the wireless 360's
>> dpad be exposed as both axises _and_ buttons?
>> [0]: when t
>> [1]:
>> Daniel
>> 2014-11-08 3:48 GMT+09:00 Jonathan Corbet <>:
>>> On Mon,  3 Nov 2014 17:53:06 +0900
>>> Daniel Dressler <> wrote:
>>>> The last time this documentation was accurate was
>>>> just over 8 years ago. In this time we've added
>>>> support for two new generations of Xbox console
>>>> controllers and dozens of third-party controllers.
>>>> This patch unifies terminology and makes it explicit
>>>> which model of controller a sentence refers to.
>>> So this seems like a useful update, and I was looking at pulling it into
>>> the docs tree.  But this hunk:
>>>> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
>>>> index 2ed7905..7e2e047 100644
>>>> --- a/drivers/input/joystick/xpad.c
>>>> +++ b/drivers/input/joystick/xpad.c
>>>> @@ -40,8 +40,8 @@
>>>>   *
>>>>   * TODO:
>>>>   *  - fine tune axes (especially trigger axes)
>>>> - *  - fix "analog" buttons (reported as digital now)
>>>> - *  - get rumble working
>>>> + *  - add original xbox rumble pack support
>>>> + *  - add xbox one rumble support
>>>>   *  - need USB IDs for other dance pads
>>>>   *
>>>>   * History:
>>> Seems like a different change that shouldn't be mixed up with the doc
>>> update.  Send me a version without that change and, in the absence
>>> of complaints, I'll apply it.
>>> Thanks,
>>> jon
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

Powered by blists - more mailing lists