git: f0778a6f9ba7 - main - bcm2835_audio: Remove wrong chn_intr()

From: Christos Margiolis <christos_at_FreeBSD.org>
Date: Fri, 21 Aug 2026 00:47:14 UTC
The branch main has been updated by christos:

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

commit f0778a6f9ba7045239a0055ebfbd7965d1f162c9
Author:     Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2026-08-21 00:47:03 +0000
Commit:     Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2026-08-21 00:47:03 +0000

    bcm2835_audio: Remove wrong chn_intr()
    
    chn_trigger() calls bcmchan_trigger() with the channel lock held.
    However, bcmchan_trigger() calls chn_intr(), which also tries to lock,
    which results in a lock recursion panic. chn_intr() is meant to be
    called by the interrupt handler and not inside CHANNEL_TRIGGER()
    methods. Remove the call altogether, the bcm2835_worker_play_start()
    call that comes after is enough.
    
    Fixes:          69cab2d1bfb5 ("Fix locking in bcm2835_audio driver")
    Reported by:    Marco Devesas Campos <devesas.campos@gmail.com>
    Tested by:      Marco Devesas Campos <devesas.campos@gmail.com>
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
    Reviewed by:    markj
    Differential Revision:  https://reviews.freebsd.org/D59055
---
 sys/arm/broadcom/bcm2835/bcm2835_audio.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sys/arm/broadcom/bcm2835/bcm2835_audio.c b/sys/arm/broadcom/bcm2835/bcm2835_audio.c
index 29808b053b92..82a98d9f6107 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_audio.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_audio.c
@@ -840,7 +840,6 @@ bcmchan_trigger(kobj_t obj, void *data, int go)
 	switch (go) {
 	case PCMTRIG_START:
 		/* kickstart data flow */
-		chn_intr(sc->pch.channel);
 		ch->submitted_samples = 0;
 		ch->retrieved_samples = 0;
 		bcm2835_worker_play_start(sc);