Thread (23 messages) flat view 23 messages, 3 authors, 2021-02-15

Re: [PATCH v12 00/14] HID: nintendo

From: Jiri Kosina <jikos@kernel.org>
Date: 2020-08-27 09:22:22

On Sat, 22 Aug 2020, Daniel J. Ogorchock wrote:
I've included round 2 for the IMU support patch. The documentation is
improved and the precision increased for the gyroscope values reported
to userspace.

There is still the important question of how to deal with userspace
implementing custom drivers using hidraw (i.e. Steam). I am resistant to
having hid-nintendo completely yield when userspace uses hidraw, since
that would prevent other applications from receiving the events from the
controllers (like maybe someone configures a voip client to use one of
the triggers as push-to-talk).

In my personal testing with steam, I don't see much issue since I
introduced the patch to not send rumble subcommands when no effect is
playing. Steam/hid-nintendo seem to fight when hid-nintendo is sending
lots of subcommands (e.g. rumble, setting LEDs). Others have reported
though that hid-nintendo/Steam are still fighting even with that patch.

I guess there's not much that can be done though to guarantee a
userspace and kernel driver coexisting at the same time, since one of
them could completely reconfigure the controller's reporting mode, IMU
resolution, etc.

The two extremes seem to be either having the hid drivers yield to
userspace completely when hidraw is in use (e.g. hid-steam with its
virtual hidraw dev) or mask out exposing the hidraw device when a kernel
hid driver is being used. It feels wrong to have things in the current
state where the HIDRAW device is being exposed, but it's not actually
supported.
Could you please elaborate a little bit better about this conflict? 
hid-steam and hid-nintendo seem to be supporting different VID/PID 
combinations, so that's not the conflict I guess.

Is Steam implementing some (proprietary?) userspace driver for conflicting 
VID/PID with hid-nintendo, using hidraw?

Thanks,

-- 
Jiri Kosina
SUSE Labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help