mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/4] ALSA: caiaq: Kore controller fixes and LCD support
@ 2026-09-27  0:35 Niko Huuskonen
  2026-09-27  0:35 ` [PATCH 1/4] ALSA: caiaq: Serialize access to the EP1 command buffer Niko Huuskonen
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Niko Huuskonen @ 2026-09-27  0:35 UTC (permalink / raw)
  To: Takashi Iwai, Jaroslav Kysela, Daniel Mack
  Cc: linux-sound, linux-kernel, Niko Huuskonen

The Native Instruments Kore controllers (USB 17cc:4711 and 17cc:4712)
work with snd-usb-caiaq, but a few things are wrong or missing:

- The EP1 command buffer is shared by all senders without locking.
  Patch 1 adds a mutex. It is needed by patch 4, which adds a sender.

- Parts of the Kore key map do not match the hardware: softkeys 5-8
  come in reverse order, and on the first Kore the knob touch sensors
  are scrambled. Patch 2 fixes the map.

- The 128x64 LCD is not supported, and userspace cannot reach it while
  the driver is bound. Patch 3 adds a hwdep interface ID, and patch 4
  exposes the LCD as a hwdep device that takes whole frames, plus an
  "LCD Contrast" control. The display protocol comes from USB captures
  of the vendor software that the OpenKoreBridge project published.

Patch 2 changes the key codes userspace sees for softkeys 5-8 on both
controllers, and for the touch sensors on the first Kore. Userspace
that compensates for the old map, such as the OpenKoreBridge controller
script, would have to follow. Userspace can read the map with
EVIOCGKEYCODE to support kernels with and without the change. If
changing the codes is a concern, patch 2 can be dropped; the rest of
the series does not depend on it.

Testing: the series was tested on a Kore controller (17cc:4711), applied
to v7.2.6 and built out of tree, with a userspace MIDI bridge that uses
the LCD, the LEDs and all controls. Every patch builds with W=1, and
checkpatch.pl --strict only asks whether MAINTAINERS needs updating for
the new file, which the existing sound/usb/caiaq/ entry already covers.
The locking problem in patch 1 was found by code review and has not
been reproduced. A Kore 2 was not available for testing.

Tool use: the patches were written with an AI coding assistant (Claude,
an LLM), as the Assisted-by tags say. It worked in an interactive
session in which I asked it to make the Kore controller usable as a MIDI
controller on Linux, to find out how its LCD is driven, to fix the
button mapping I reported from testing the hardware, and to prepare the
kernel changes for submission. It found the missing locking by code
review, derived the key map from my tests on the controller, checked the
LCD protocol on the device over raw USB, and tested each change on my
controller.

Niko Huuskonen (4):
  ALSA: caiaq: Serialize access to the EP1 command buffer
  ALSA: caiaq: Fix the Kore controller key map
  ALSA: uapi: Add hwdep interface ID for caiaq devices
  ALSA: caiaq: Add LCD support for the Kore controllers

 include/uapi/sound/asound.h |   3 +-
 sound/usb/caiaq/Makefile    |   2 +-
 sound/usb/caiaq/device.c    |  12 ++
 sound/usb/caiaq/device.h    |  13 ++
 sound/usb/caiaq/input.c     |  29 +++-
 sound/usb/caiaq/lcd.c       | 258 ++++++++++++++++++++++++++++++++++++
 sound/usb/caiaq/lcd.h       |   7 +
 7 files changed, 318 insertions(+), 6 deletions(-)
 create mode 100644 sound/usb/caiaq/lcd.c
 create mode 100644 sound/usb/caiaq/lcd.h


base-commit: 4d4bc656580bcc448f8e6d6b3b3a903120eb29bb
-- 
2.55.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-28 16:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-27  0:35 [PATCH 0/4] ALSA: caiaq: Kore controller fixes and LCD support Niko Huuskonen
2026-09-27  0:35 ` [PATCH 1/4] ALSA: caiaq: Serialize access to the EP1 command buffer Niko Huuskonen
2026-09-27  0:35 ` [PATCH 2/4] ALSA: caiaq: Fix the Kore controller key map Niko Huuskonen
2026-09-27  0:35 ` [PATCH 3/4] ALSA: uapi: Add hwdep interface ID for caiaq devices Niko Huuskonen
2026-09-27  0:35 ` [PATCH 4/4] ALSA: caiaq: Add LCD support for the Kore controllers Niko Huuskonen
2026-09-28 16:12 ` [PATCH 0/4] ALSA: caiaq: Kore controller fixes and LCD support Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®