From: David Herrmann <dh.herrmann@gmail.com>
To: linux-input@vger.kernel.org
Cc: Jiri Kosina <jkosina@suse.cz>, David Herrmann <dh.herrmann@gmail.com>
Subject: [PATCH 00/26] Wii Remote Extension Hotplugging Support
Date: Sun, 5 May 2013 23:12:44 +0200 [thread overview]
Message-ID: <1367788390-29835-1-git-send-email-dh.herrmann@gmail.com> (raw)
Hi
This is my second revision of the hid-wiimote rework. It features:
- Full extension hotplugging support: We can now initialize extensions during
runtime and no longer require them to be plugged during connection setup.
- Sub-device modularization: Nintendo produced many different devices which
are based on the Wii-Remote protocol. However, they often emulate the core
protocol but don't feature the hardware. The modularization allows us to
disable hardware that isn't present and instead provide a consistent API
to user-space.
For instance, patch 24/26 adds "Wii U Pro Controller" support and avoids
all the standard wii-remote input devices (rumble, IR, accelerometer,
extensions, ...) and instead provides a single interface for the
Pro-Controller features. That makes working with the device from user-space
a lot easier.
- Speaker support: Patch 26/26 adds an alsa sound driver and allows user-space
to use the built-in speaker like any standard sound card.
- Fixes: Several small fixes are included. They are very hard to backport so I
didn't CC stable@vger. However, none of the fixes are crucial so I think we
can ignore the stable kernels here. They fix things like reducing timeouts
and debugfs bugs.
The Bluetooth HIDP rework is now upstream and already in David Miller's queue.
It will be part of linux-3.10 so if someone wants to test this, I recommend
using linux-next. However, this series doesn't depend on it. But if you want to
avoid Bluetooth l2cap oopses during hotplugging, you should use linux-next..
I did several code review-rounds myself and tested this with 4 different Wii
Remote revisions simultaneously. I didn't get any kernel oops, panic or deadlock
and it works very well. I also tested different extension devices, 3rd party
devices (including balance-board and Pro-Controller) and emulated devices. It
also works with Wii-U devices.
I did some backwards-compatibility checks. Obviously, old user-space won't
notice hot-plugged devices, but other than that the patches should be 100%
backwards-compatible.
Note that the driver doesn't support extension devices between patch 13 and 16.
But extension support is reworked heavily, so there is no reason to do a bisect
on wiimote extensions, anyway. Other than that the series should be bisectable.
Patch 24/26 is marked as RFC because it adds Wii-U-Pro-Controller mappings. If
someone could review them, I would be very glad. Because I want to avoid
introducing horrible mappings as I did with the main Wii-Remote buttons..
Patch 26/26 is marked as RFC as it adds an Alsa driver which I'd like to get
reviewed by ALSA developers. It works for me (and heavily tested), but it's my
first alsa driver, so I am not entirely sure. (alsa-devel is CC'ed for this
patch).
ABI changes are tagged as 3.11 so no need to push this into 3.10.
Sorry for the 3 weeks delay, but I thought I'd do some more review myself before
resending it.
Cheers
David
David Herrmann (26):
HID: wiimote: extend driver description
HID: wiimote: move queue handling into separate struct
HID: wiimote: keep HID device open
HID: wiimote: add device detection
HID: wiimote: use cached battery values on I/O failure
HID: wiimote: wake up if output queue failed
HID: wiimote: add sub-device module infrastructure
HID: wiimote: convert KEYS and RUMBLE to modules
HID: wiimote: convert BATTERY to module
HID: wiimote: convert LEDS to modules
HID: wiimote: convert ACCEL to module
HID: wiimote: convert IR to module
HID: wiimote: add extension hotplug support
HID: wiimote: add Balance Board support
HID: wiimote: add Nunchuk support
HID: wiimote: add Classic Controller extension
HID: wiimote: add Motion Plus extension module
HID: wiimote: fix ctx pointer in debugfs DRM-write
HID: wiimote: lock DRM mode during debugfs overwrite
HID: wiimote: add sysfs extension/device-type attrs
HID: wiimote: add "bboard_calib" attribute
HID: wiimote: remove old static extension support
HID: wiimote: add MP quirks
HID: wiimote: support Nintendo Wii U Pro Controller
HID: wiimote: fix DRM debug-attr to correctly parse input
HID/ALSA: wiimote: add speaker support
Documentation/ABI/testing/sysfs-driver-hid-wiimote | 39 +-
drivers/hid/Kconfig | 31 +-
drivers/hid/Makefile | 8 +-
drivers/hid/hid-wiimote-core.c | 1714 ++++++++++------
drivers/hid/hid-wiimote-debug.c | 14 +-
drivers/hid/hid-wiimote-ext.c | 849 --------
drivers/hid/hid-wiimote-modules.c | 2091 ++++++++++++++++++++
drivers/hid/hid-wiimote-speaker.c | 662 +++++++
drivers/hid/hid-wiimote.h | 234 ++-
9 files changed, 4188 insertions(+), 1454 deletions(-)
delete mode 100644 drivers/hid/hid-wiimote-ext.c
create mode 100644 drivers/hid/hid-wiimote-modules.c
create mode 100644 drivers/hid/hid-wiimote-speaker.c
--
1.8.2.2
next reply other threads:[~2013-05-05 21:13 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-05 21:12 David Herrmann [this message]
2013-05-05 21:12 ` [PATCH 01/26] HID: wiimote: extend driver description David Herrmann
2013-06-03 9:19 ` Jiri Kosina
2013-06-03 20:28 ` David Herrmann
2013-05-05 21:12 ` [PATCH 02/26] HID: wiimote: move queue handling into separate struct David Herrmann
2013-05-05 21:12 ` [PATCH 03/26] HID: wiimote: keep HID device open David Herrmann
2013-05-05 21:12 ` [PATCH 04/26] HID: wiimote: add device detection David Herrmann
2013-05-05 21:12 ` [PATCH 05/26] HID: wiimote: use cached battery values on I/O failure David Herrmann
2013-05-05 21:12 ` [PATCH 06/26] HID: wiimote: wake up if output queue failed David Herrmann
2013-05-05 21:12 ` [PATCH 07/26] HID: wiimote: add sub-device module infrastructure David Herrmann
2013-05-05 21:12 ` [PATCH 08/26] HID: wiimote: convert KEYS and RUMBLE to modules David Herrmann
2013-05-05 21:12 ` [PATCH 09/26] HID: wiimote: convert BATTERY to module David Herrmann
2013-05-05 21:12 ` [PATCH 10/26] HID: wiimote: convert LEDS to modules David Herrmann
2013-05-05 21:12 ` [PATCH 11/26] HID: wiimote: convert ACCEL to module David Herrmann
2013-05-05 21:12 ` [PATCH 12/26] HID: wiimote: convert IR " David Herrmann
2013-05-05 21:12 ` [PATCH 13/26] HID: wiimote: add extension hotplug support David Herrmann
2013-05-23 10:53 ` David Herrmann
2013-05-23 12:28 ` Jiri Kosina
2013-05-05 21:12 ` [PATCH 14/26] HID: wiimote: add Balance Board support David Herrmann
2013-05-05 21:12 ` [PATCH 15/26] HID: wiimote: add Nunchuk support David Herrmann
2013-05-05 21:13 ` [PATCH 16/26] HID: wiimote: add Classic Controller extension David Herrmann
2013-05-06 0:39 ` Todd Showalter
2013-05-06 5:40 ` David Herrmann
2013-05-06 14:15 ` Todd Showalter
2013-05-05 21:13 ` [PATCH 17/26] HID: wiimote: add Motion Plus extension module David Herrmann
2013-05-05 21:13 ` [PATCH 18/26] HID: wiimote: fix ctx pointer in debugfs DRM-write David Herrmann
2013-05-05 21:13 ` [PATCH 19/26] HID: wiimote: lock DRM mode during debugfs overwrite David Herrmann
2013-05-05 21:13 ` [PATCH 20/26] HID: wiimote: add sysfs extension/device-type attrs David Herrmann
2013-05-05 21:13 ` [PATCH 21/26] HID: wiimote: add "bboard_calib" attribute David Herrmann
2013-05-05 21:13 ` [PATCH 22/26] HID: wiimote: remove old static extension support David Herrmann
2013-05-05 21:13 ` [PATCH 23/26] HID: wiimote: add MP quirks David Herrmann
2013-05-05 21:13 ` [RFC 24/26] HID: wiimote: support Nintendo Wii U Pro Controller David Herrmann
2013-05-06 0:43 ` Todd Showalter
2013-05-06 5:49 ` David Herrmann
2013-05-06 14:14 ` Todd Showalter
2013-05-08 15:33 ` David Herrmann
2013-05-08 16:40 ` Todd Showalter
2013-05-08 17:05 ` Dmitry Torokhov
2013-05-08 17:20 ` Todd Showalter
2013-05-08 17:25 ` David Herrmann
2013-05-08 17:26 ` Dmitry Torokhov
2013-05-13 17:03 ` David Herrmann
2013-05-13 17:40 ` Todd Showalter
2013-05-22 12:10 ` David Herrmann
2013-05-22 16:18 ` Todd Showalter
2013-05-05 21:13 ` [PATCH 25/26] HID: wiimote: fix DRM debug-attr to correctly parse input David Herrmann
2013-05-05 21:13 ` [RFC 26/26] HID/ALSA: wiimote: add speaker support David Herrmann
2013-05-26 20:55 ` [PATCH 27/26] HID: wiimote: init EXT/MP during device detection David Herrmann
2013-05-26 20:55 ` [PATCH 28/26] HID: wiimote: discard invalid EXT data reports David Herrmann
2013-05-26 20:55 ` [PATCH 29/26] HID: wiimote: fix classic controller parsing David Herrmann
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=1367788390-29835-1-git-send-email-dh.herrmann@gmail.com \
--to=dh.herrmann@gmail.com \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).