git: 80873ecdc11a - stable/15 - sound: Remove dead midi code

From: Christos Margiolis <christos_at_FreeBSD.org>
Date: Thu, 20 Nov 2025 13:31:38 UTC
The branch stable/15 has been updated by christos:

URL: https://cgit.FreeBSD.org/src/commit/?id=80873ecdc11ac673bf5a3e7d7120191f40ef97f0

commit 80873ecdc11ac673bf5a3e7d7120191f40ef97f0
Author:     Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2025-11-13 12:10:04 +0000
Commit:     Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2025-11-20 13:28:14 +0000

    sound: Remove dead midi code
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    
    (cherry picked from commit e4b31985b54b626b2bbf486a82dd789f3dd381db)
---
 sys/dev/sound/midi/midi.c | 137 +++++-----------------------------------------
 1 file changed, 14 insertions(+), 123 deletions(-)

diff --git a/sys/dev/sound/midi/midi.c b/sys/dev/sound/midi/midi.c
index eed7ce89a919..b39288675ea6 100644
--- a/sys/dev/sound/midi/midi.c
+++ b/sys/dev/sound/midi/midi.c
@@ -62,12 +62,6 @@
 #include <dev/sound/midi/midiq.h>
 MALLOC_DEFINE(M_MIDI, "midi buffers", "Midi data allocation area");
 
-#define MIDI_DEV_MIDICTL 12
-
-enum midi_states {
-	MIDI_IN_START, MIDI_IN_SYSEX, MIDI_IN_DATA
-};
-
 #define MIDI_NAMELEN   16
 struct snd_midi {
 	KOBJ_FIELDS;
@@ -86,12 +80,6 @@ struct snd_midi {
 	struct selinfo rsel, wsel;
 	int	hiwat;			/* QLEN(outq)>High-water -> disable
 					 * writes from userland */
-	enum midi_states inq_state;
-	int	inq_status, inq_left;	/* Variables for the state machine in
-					 * Midi_in, this is to provide that
-					 * signals only get issued only
-					 * complete command packets. */
-	struct proc *async;
 	struct cdev *dev;
 	TAILQ_ENTRY(snd_midi) link;
 };
@@ -326,10 +314,8 @@ static int midi_lengths[] = {2, 2, 2, 2, 1, 1, 2, 0};
 int
 midi_in(struct snd_midi *m, uint8_t *buf, int size)
 {
-	/* int             i, sig, enq; */
 	int used;
 
-	/* uint8_t       data; */
 	MIDI_DEBUG(5, printf("midi_in: m=%p size=%d\n", m, size));
 
 /*
@@ -341,111 +327,22 @@ midi_in(struct snd_midi *m, uint8_t *buf, int size)
 	used = 0;
 
 	mtx_lock(&m->qlock);
-#if 0
-	/*
-	 * Don't bother queuing if not in read mode.  Discard everything and
-	 * return size so the caller doesn't freak out.
-	 */
-
-	if (!(m->flags & M_RX))
-		return size;
-
-	for (i = sig = 0; i < size; i++) {
-		data = buf[i];
-		enq = 0;
-		if (data == MIDI_ACK)
-			continue;
-
-		switch (m->inq_state) {
-		case MIDI_IN_START:
-			if (MIDI_IS_STATUS(data)) {
-				switch (data) {
-				case 0xf0:	/* Sysex */
-					m->inq_state = MIDI_IN_SYSEX;
-					break;
-				case 0xf1:	/* MTC quarter frame */
-				case 0xf3:	/* Song select */
-					m->inq_state = MIDI_IN_DATA;
-					enq = 1;
-					m->inq_left = 1;
-					break;
-				case 0xf2:	/* Song position pointer */
-					m->inq_state = MIDI_IN_DATA;
-					enq = 1;
-					m->inq_left = 2;
-					break;
-				default:
-					if (MIDI_IS_COMMON(data)) {
-						enq = 1;
-						sig = 1;
-					} else {
-						m->inq_state = MIDI_IN_DATA;
-						enq = 1;
-						m->inq_status = data;
-						m->inq_left = MIDI_LENGTH(data);
-					}
-					break;
-				}
-			} else if (MIDI_IS_STATUS(m->inq_status)) {
-				m->inq_state = MIDI_IN_DATA;
-				if (!MIDIQ_FULL(m->inq)) {
-					used++;
-					MIDIQ_ENQ(m->inq, &m->inq_status, 1);
-				}
-				enq = 1;
-				m->inq_left = MIDI_LENGTH(m->inq_status) - 1;
-			}
-			break;
-			/*
-			 * End of case MIDI_IN_START:
-			 */
-
-		case MIDI_IN_DATA:
-			enq = 1;
-			if (--m->inq_left <= 0)
-				sig = 1;/* deliver data */
-			break;
-		case MIDI_IN_SYSEX:
-			if (data == MIDI_SYSEX_END)
-				m->inq_state = MIDI_IN_START;
-			break;
-		}
-
-		if (enq)
-			if (!MIDIQ_FULL(m->inq)) {
-				MIDIQ_ENQ(m->inq, &data, 1);
-				used++;
-			}
-		/*
-	         * End of the state machines main "for loop"
-	         */
+	MIDI_DEBUG(6, printf("midi_in: len %jd avail %jd\n",
+	    (intmax_t)MIDIQ_LEN(m->inq),
+	    (intmax_t)MIDIQ_AVAIL(m->inq)));
+	if (MIDIQ_AVAIL(m->inq) > size) {
+		used = size;
+		MIDIQ_ENQ(m->inq, buf, size);
+	} else {
+		MIDI_DEBUG(4, printf("midi_in: Discarding data qu\n"));
+		mtx_unlock(&m->qlock);
+		return 0;
 	}
-	if (sig) {
-#endif
-		MIDI_DEBUG(6, printf("midi_in: len %jd avail %jd\n",
-		    (intmax_t)MIDIQ_LEN(m->inq),
-		    (intmax_t)MIDIQ_AVAIL(m->inq)));
-		if (MIDIQ_AVAIL(m->inq) > size) {
-			used = size;
-			MIDIQ_ENQ(m->inq, buf, size);
-		} else {
-			MIDI_DEBUG(4, printf("midi_in: Discarding data qu\n"));
-			mtx_unlock(&m->qlock);
-			return 0;
-		}
-		if (m->rchan) {
-			wakeup(&m->rchan);
-			m->rchan = 0;
-		}
-		selwakeup(&m->rsel);
-		if (m->async) {
-			PROC_LOCK(m->async);
-			kern_psignal(m->async, SIGIO);
-			PROC_UNLOCK(m->async);
-		}
-#if 0
+	if (m->rchan) {
+		wakeup(&m->rchan);
+		m->rchan = 0;
 	}
-#endif
+	selwakeup(&m->rsel);
 	mtx_unlock(&m->qlock);
 	return used;
 }
@@ -480,11 +377,6 @@ midi_out(struct snd_midi *m, uint8_t *buf, int size)
 			m->wchan = 0;
 		}
 		selwakeup(&m->wsel);
-		if (m->async) {
-			PROC_LOCK(m->async);
-			kern_psignal(m->async, SIGIO);
-			PROC_UNLOCK(m->async);
-		}
 	}
 	mtx_unlock(&m->qlock);
 	return used;
@@ -526,7 +418,6 @@ midi_open(struct cdev *i_dev, int flags, int mode, struct thread *td)
 
 	m->rchan = 0;
 	m->wchan = 0;
-	m->async = 0;
 
 	if (flags & FREAD) {
 		m->flags |= M_RX | M_RXEN;