All of lore.kernel.org
 help / color / mirror / Atom feed
From: Siarhei Vishniakou <svv@google.com>
To: Lee Jones <lee.jones@linaro.org>
Cc: "Daniel J. Ogorchock" <djogorchock@gmail.com>,
	linux-input@vger.kernel.org, thunderbird2k@gmail.com,
	blaws05@gmail.com, benjamin.tissoires@redhat.com,
	jikos@kernel.org, Roderick.Colenbrander@sony.com,
	s.jegen@gmail.com, carmueller@gmail.com,
	pgriffais@valvesoftware.com, hadess@hadess.net
Subject: Re: [PATCH v14 00/17] HID: nintendo
Date: Thu, 9 Sep 2021 15:50:22 -0700	[thread overview]
Message-ID: <CAKF84v3zLutuuThOXgbJp7m5EAxoKQ151TC2yFP_P4=64td-sg@mail.gmail.com> (raw)
In-Reply-To: <YToD0wVxxwukjpXC@google.com>

If some of the patch aspects are controversial (for example, LED's),
would it be possible to merge this series partially?
For example, add basic support for buttons and keys, while leaving
LEDs / rumble / etc in the review queue?

Also, is it possible to combine some of these patches? For example,
maybe patches 6, 7, 8 can be combined with patch 1? This would make it
easier to merge into Android kernels.


On Thu, Sep 9, 2021 at 5:53 AM Lee Jones <lee.jones@linaro.org> wrote:
>
> On Sat, 24 Jul 2021, Daniel J. Ogorchock wrote:
>
> > I've updated the driver to use the "player" string introduced in
> > Roderick's pending patch. I'll update the series again if that pending
> > patch is altered or a different approach is decided on.
> >
> > Some stability improvements are included as well.
> >
> > Version 14 changes:
> >   - Use proper LED classdev name scheme
> >   - Prevent situations where a missed zero amplitude rumble packet would
> >     leave the controller stuck vibrating until a timeout
> >   - Introduce a max rate at which subcommands or rumble packets can be
> >     sent to the controller. This reduces bluetooth disconnects.
> >   - Send rumble packets immediately after receiving input reports. This
> >     reduces bluetooth disconnects (similar technique was already used
> >     for subcommands).
> >
> > Version 13 changes:
> >   - Switched to using the dedicated rumble data message type, rather
> >     than constantly resending the rumble enabled subcommand. This more
> >     closely resembles how the console itself handles rumble data.
> >   - Applied revisions based on Silvan Jegen's feedback on v12.
> >
> > Version 12 changes:
> >   - Added support for reading user calibration from the controller's
> >     SPI flash (written when someone calibrates the controller on the
> >     Nintendo switch).
> >   - Added patch to prevent sending rumble subcommands when no effect
> >     is being played. This turned out to drastically improve bluetooth
> >     connection reliability.
> >   - Set the battery description to POWER_SUPPLY_TYPE_BATTERY (was
> >     missing in previous revisions due to oversight). This fixes problems
> >     with desktop environments not handling the controller batteries
> >     properly.
> >   - Reintroduced IMU patch with improvements to documentation, packet
> >     drop handling, and increased precision for gyro readings. Also
> >     now blacklists the IMU input dev from joydev like hid-sony.
> >
> > Version 11 changes:
> >   - Removed IMU patch for now, since it has some issues to work out.
> >   - Fixed bug introduced in v10 which led to the joy-cons' S-triggers
> >     not being configured as an input.
> >   - Changed the pro controller's d-pad input from buttons to a hat to be
> >     more in line with other controller drivers.
> >
> > Version 10 changes:
> >   - Removed duplicate reporting of one of the triggers that Billy noticed
> >   - The joy-cons now only report having the buttons they actually have
> >     (they used to register the input devices with the buttons of the
> >     other joy-con as well).
> >   - The input device is now created after the LEDs/power supply.
> >   - The removed state handling bool has been removed, instead opting to
> >     add a new controller state (removed).
> >   - Eliminated a 1 second delay when probing a USB controller.
> >   - Added support for the IMU. This mostly consisted of merging in some
> >     work provided by Carl. I'm not incredibly familiar with proper
> >     gyro/accelerometer handling in linux, so this might need some
> >     tweaking. Preliminary tests in evtest show the gyro/accel values
> >     being reported.
> >   - Added support for the joy-con USB charging grip.
> >
> > Version 9 changes:
> >   - Fixed compiler errors on gcc versions older than 8.2
> >   - Set input device's uniq value to the controller's MAC address
> >
> > Version 8 changes:
> >   - Corrected the handshaking protocol with USB pro controllers. A
> >     handshake now occurs both prior and after the baudrate set. This
> >     doesn't appear to have a noticeable difference, but it more
> >     accurately follows documentation found online.
> >   - Fixed potential race condition which could lead to a slightly longer
> >     delay sending subcommands in rare circumstances.
> >   - Moved the rumble worker to its own workqueue, since it can block.
> >     This prevents it from having a negative impact on the default kernel
> >     workqueue. It also prevents dropped subcommands due to something
> >     else blocking the kernel workqueue. The benefit is most obvious when
> >     using multiple controllers at once, since the controller subcommand
> >     timings are very picky.
> >   - Added a patch to set the most significant bit of the hid hw version.
> >     Roderick had mentioned needing to probably do this awhile ago, but I
> >     had forgotten about it until now. This is the same thing hid-sony
> >     does. It allows SDL2 to have different mappings for the hid-nintendo
> >     driver vs the default hid mappings.
> >
> > Version 7 changes:
> >   - Changed name to hid-nintendo to fit modern naming conventions
> >   - Removed joycon_ctlr_destroy(), since it wasn't needed an could
> >     potentially invalidate a mutex while it could be in use on other
> >     threads
> >   - Implemented minor code improvements suggested by Silvan
> >   - The driver now waits to send subcommands until after receiving an
> >     input report. This significantly reduces dropped subcommands.
> >   - Reduced the number of error messages when disconnecting a
> >     controller.
> >
> > Version 6 changes:
> >   - Improved subcommand sending reliabilty
> >   - Decreased rumble period to 50ms
> >   - Added rumble queue to avoid missing ff_effects if sent too quickly
> >   - Code cleanup and minor refactoring
> >   - Added default analog stick calibration
> >
> > Version 5 changes:
> >   - Removed sysfs interface to control motor frequencies.
> >   - Improved rumble reliability by using subcommands to set it.
> >   - Changed mapping of the SL/SR triggers on the joy-cons to map to
> >     whichever triggers they lack (e.g. a left joycon's sl/sr map to
> >     TR and TR2). This allows userspace to distinguish between the
> >     normal and S triggers.
> >   - Minor refactors
> >
> > Version 4 changes:
> >   - Added support for the Home button LED for the pro controller and
> >     right joy-con
> >   - Changed name from hid-switchcon to hid-joycon
> >   - Added rumble support
> >   - Removed ctlr->type and use hdev->product instead
> >   - Use POWER_SUPPLY_CAPACITY_LEVEL enum instead of manually translating
> >     to capacity percentages
> >   - Misc. minor refactors based on v3 feedback
> >
> > Version 3 changes:
> >   - Added led_classdev support for the 4 player LEDs
> >   - Added power_supply support for the controller's battery
> >   - Made the controller number mutex static
> >   - Minor refactoring/style fixes based on Roderick's feedback from v2
> >
> > Version 2 changes:
> >   - Switched to using a synchronous method for configuring the
> >         controller.
> >   - Removed any pairing/orientation logic in the driver. Every
> >     controller now corresponds to its own input device.
> >   - Store controller button data as a single u32.
> >   - Style corrections
> >
> > Daniel J. Ogorchock (17):
> >   HID: nintendo: add nintendo switch controller driver
> >   HID: nintendo: add player led support
> >   HID: nintendo: add power supply support
> >   HID: nintendo: add home led support
> >   HID: nintendo: add rumble support
> >   HID: nintendo: improve subcommand reliability
> >   HID: nintendo: send subcommands after receiving input report
> >   HID: nintendo: reduce device removal subcommand errors
> >   HID: nintendo: patch hw version for userspace HID mappings
> >   HID: nintendo: set controller uniq to MAC
> >   HID: nintendo: add support for charging grip
> >   HID: nintendo: add support for reading user calibration
> >   HID: nintendo: add IMU support
> >   HID: nintendo: improve rumble performance and stability
> >   HID: nintendo: ratelimit subcommands and rumble
> >   HID: nintendo: send rumble cmds post input reports
> >   HID: nintendo: prevent needless queueing of the rumble worker
> >
> >  MAINTAINERS                |    6 +
> >  drivers/hid/Kconfig        |   24 +
> >  drivers/hid/Makefile       |    1 +
> >  drivers/hid/hid-ids.h      |    4 +
> >  drivers/hid/hid-nintendo.c | 2319 ++++++++++++++++++++++++++++++++++++
> >  drivers/input/joydev.c     |   10 +
> >  6 files changed, 2364 insertions(+)
> >  create mode 100644 drivers/hid/hid-nintendo.c
>
> v14 already. :)
>
> Is this the latest version?
>
> Have there been any review comments?
>
> What are the current plans please?
>
> --
> Lee Jones [李琼斯]
> Senior Technical Lead - Developer Services
> Linaro.org │ Open source software for Arm SoCs
> Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2021-09-09 22:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-25  3:26 [PATCH v14 00/17] HID: nintendo Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 01/17] HID: nintendo: add nintendo switch controller driver Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 02/17] HID: nintendo: add player led support Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 03/17] HID: nintendo: add power supply support Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 04/17] HID: nintendo: add home led support Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 05/17] HID: nintendo: add rumble support Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 06/17] HID: nintendo: improve subcommand reliability Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 07/17] HID: nintendo: send subcommands after receiving input report Daniel J. Ogorchock
2021-07-25  3:26 ` [PATCH v14 08/17] HID: nintendo: reduce device removal subcommand errors Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 09/17] HID: nintendo: patch hw version for userspace HID mappings Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 10/17] HID: nintendo: set controller uniq to MAC Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 11/17] HID: nintendo: add support for charging grip Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 12/17] HID: nintendo: add support for reading user calibration Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 13/17] HID: nintendo: add IMU support Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 14/17] HID: nintendo: improve rumble performance and stability Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 15/17] HID: nintendo: ratelimit subcommands and rumble Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 16/17] HID: nintendo: send rumble cmds post input reports Daniel J. Ogorchock
2021-07-25  3:27 ` [PATCH v14 17/17] HID: nintendo: prevent needless queueing of the rumble worker Daniel J. Ogorchock
2021-09-09 12:53 ` [PATCH v14 00/17] HID: nintendo Lee Jones
2021-09-09 22:50   ` Siarhei Vishniakou [this message]
2021-09-11 17:43   ` Daniel Ogorchock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKF84v3zLutuuThOXgbJp7m5EAxoKQ151TC2yFP_P4=64td-sg@mail.gmail.com' \
    --to=svv@google.com \
    --cc=Roderick.Colenbrander@sony.com \
    --cc=benjamin.tissoires@redhat.com \
    --cc=blaws05@gmail.com \
    --cc=carmueller@gmail.com \
    --cc=djogorchock@gmail.com \
    --cc=hadess@hadess.net \
    --cc=jikos@kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-input@vger.kernel.org \
    --cc=pgriffais@valvesoftware.com \
    --cc=s.jegen@gmail.com \
    --cc=thunderbird2k@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.