mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/3] ALSA: opl3: Fix sequencer timer and channel lifetimes
@ 2026-10-24 16:49 Cen Zhang
  2026-10-24 16:49 ` [PATCH v4 1/3] ALSA: opl3: Initialize the timer before publishing a sequencer port Cen Zhang
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Cen Zhang @ 2026-10-24 16:49 UTC (permalink / raw)
  To: perex, tiwai
  Cc: linux-sound, linux-kernel, tiwai, baijiaju1990, jjzuming, zzzccc427

OPL3 can receive a fixed-duration note before its timer is initialized,
and the card-owned voice array can retain channel pointers after either
sequencer port has freed its channel set. The delayed-note timer can also
remain queued after the sequencer client has been deleted.

Initialize the timer before publishing ports, key off active voices and
clear their aliases before freeing each channel set, and shut down the
shared timer after client deletion has drained both event producers.
Retire higher-numbered partners before their 4-op primaries so no active
hardware KEYON is skipped when the primary changes its partner's state.

This series applies to tiwai/sound.git for-next at d74eb09af56b.

---
Cen Zhang (3):
  ALSA: opl3: Initialize the timer before publishing a sequencer port
  ALSA: opl3: Clear voice channels before freeing their sets
  ALSA: opl3: Shut down the timer after draining sequencer ports

 sound/drivers/opl3/opl3_midi.c  | 15 +++++++++++++++
 sound/drivers/opl3/opl3_oss.c   |  1 +
 sound/drivers/opl3/opl3_seq.c   | 13 ++++++++-----
 sound/drivers/opl3/opl3_voice.h |  1 +
 4 files changed, 25 insertions(+), 5 deletions(-)

Changes in v4:
- Retire higher-numbered paired voices before 4-op primaries in patch 2 so
  primary cleanup cannot hide an independently active partner from hardware
  key-off.
- Explain the initial SYNTH-mode direct NOTEON/program-change sequence which
  can activate both members of a pair.
- Keep the code in patches 1 and 3 unchanged.

Link to v1: https://lore.kernel.org/r/pm-pmb-4552c4e605507d8d9b16-v4-213af356c0046331c8ff@gmail.com
Link to v2: https://lore.kernel.org/r/pm-pmb-4552c4e605507d8d9b16-v6-f3fa18aca2c7d18be670-0@gmail.com
Link to v3: https://lore.kernel.org/r/pm-pmb-4552c4e605507d8d9b16-v8-8b61497d9bd754defcda-0@gmail.com

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

end of thread, other threads:[~2026-10-26  8:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-24 16:49 [PATCH v4 0/3] ALSA: opl3: Fix sequencer timer and channel lifetimes Cen Zhang
2026-10-24 16:49 ` [PATCH v4 1/3] ALSA: opl3: Initialize the timer before publishing a sequencer port Cen Zhang
2026-10-24 16:49 ` [PATCH v4 2/3] ALSA: opl3: Clear voice channels before freeing their sets Cen Zhang
2026-10-24 16:49 ` [PATCH v4 3/3] ALSA: opl3: Shut down the timer after draining sequencer ports Cen Zhang
2026-10-26  8:01 ` [PATCH v4 0/3] ALSA: opl3: Fix sequencer timer and channel lifetimes 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®