* How write driver for gamepad, that detected by usbhid but not work correctly?
@ 2013-09-29 9:22 v1kt0p.rus
2013-09-29 9:39 ` Bruno Prémont
0 siblings, 1 reply; 2+ messages in thread
From: v1kt0p.rus @ 2013-09-29 9:22 UTC (permalink / raw)
To: linux-input
I have "Genesis to USB adapter" and two genesis gamepads. On windows it
is work correctly. On linux do not work "left" and "up" buttons on
D-pad, and two gamepads appear as one with double buttons.
At first I tried to write usb driver(usb_register), but when I connect
gamepad system choose usbhid driver not my. When I unplug gamepad system
call "probe" in my driver, but then immediately call "disconnect". Is
there a way to force the system to choose my driver first?
Than I tried to write hid driver(hid_register_driver), but "probe" is
not called. I can not find documentation describing how to make a
working driver for hid, it exists at all?
What is the correct way to write a driver for the gamepad? What am I
doing wrong?
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: How write driver for gamepad, that detected by usbhid but not work correctly?
2013-09-29 9:22 How write driver for gamepad, that detected by usbhid but not work correctly? v1kt0p.rus
@ 2013-09-29 9:39 ` Bruno Prémont
0 siblings, 0 replies; 2+ messages in thread
From: Bruno Prémont @ 2013-09-29 9:39 UTC (permalink / raw)
To: v1kt0p.rus@gmail.com; +Cc: linux-input
On Sun, 29 September 2013 "v1kt0p.rus@gmail.com" <v1kt0p.rus@gmail.com> wrote:
> I have "Genesis to USB adapter" and two genesis gamepads. On windows it
> is work correctly. On linux do not work "left" and "up" buttons on
> D-pad, and two gamepads appear as one with double buttons.
> At first I tried to write usb driver(usb_register), but when I connect
> gamepad system choose usbhid driver not my. When I unplug gamepad system
> call "probe" in my driver, but then immediately call "disconnect". Is
> there a way to force the system to choose my driver first?
> Than I tried to write hid driver(hid_register_driver), but "probe" is
> not called. I can not find documentation describing how to make a
> working driver for hid, it exists at all?
> What is the correct way to write a driver for the gamepad? What am I
> doing wrong?
You can have a look at all the drivers located under drivers/hid/ for
how they do it.
Two drivers that represent gamepads:
hid-pl.c
hid-saitek.c
Depending on how your gamepad shows up when there are two pads connected
you may need to register a second input device to send buttons from the
first pad to first input device, buttons from second to the extra input
device.
A good start to find out what your device does is to enable debugging
in your kernel and cat /sys/kernel/debug/hid/<your device>/events
to determine what happens on button presses.
You can then check how that output matches events sent from /dev/input/event*
matching your device and determine if all that is needed is proper
scancode translation of if more tuning is needed.
Bruno
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-09-29 9:39 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-29 9:22 How write driver for gamepad, that detected by usbhid but not work correctly? v1kt0p.rus
2013-09-29 9:39 ` Bruno Prémont
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.