git: 1e72608a3c6a - main - sound: Remove all remaining uses of mixer_get_lock()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 27 May 2026 15:33:33 UTC
The branch main has been updated by christos:
URL: https://cgit.FreeBSD.org/src/commit/?id=1e72608a3c6a60b76938c5ded2a290d0b9ff6456
commit 1e72608a3c6a60b76938c5ded2a290d0b9ff6456
Author: Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2026-04-16 12:41:13 +0000
Commit: Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2026-05-27 15:32:12 +0000
sound: Remove all remaining uses of mixer_get_lock()
These functions are called from sound(4) through MIXER_SET() in
mixer_set(), but nothing mixer-related is used or needs to be locked in
these cases.
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Pull Request: https://ron-dev.freebsd.org/FreeBSD/src/pulls/18
---
sys/arm/allwinner/a64/sun50i_a64_acodec.c | 14 --------------
sys/arm64/rockchip/rk3328_codec.c | 14 --------------
sys/dev/sound/macio/onyx.c | 17 -----------------
sys/dev/sound/macio/snapper.c | 17 -----------------
sys/dev/sound/macio/tumbler.c | 17 -----------------
5 files changed, 79 deletions(-)
diff --git a/sys/arm/allwinner/a64/sun50i_a64_acodec.c b/sys/arm/allwinner/a64/sun50i_a64_acodec.c
index 12c9a86cf361..93b0328e99e0 100644
--- a/sys/arm/allwinner/a64/sun50i_a64_acodec.c
+++ b/sys/arm/allwinner/a64/sun50i_a64_acodec.c
@@ -339,19 +339,9 @@ static int
a64codec_mixer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
{
struct a64codec_softc *sc;
- struct mtx *mixer_lock;
- uint8_t do_unlock;
u_int val;
sc = device_get_softc(mix_getdevinfo(m));
- mixer_lock = mixer_get_lock(m);
-
- if (mtx_owned(mixer_lock)) {
- do_unlock = 0;
- } else {
- do_unlock = 1;
- mtx_lock(mixer_lock);
- }
right = left;
@@ -375,10 +365,6 @@ a64codec_mixer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned ri
}
A64CODEC_UNLOCK(sc);
- if (do_unlock) {
- mtx_unlock(mixer_lock);
- }
-
return (left | (right << 8));
}
diff --git a/sys/arm64/rockchip/rk3328_codec.c b/sys/arm64/rockchip/rk3328_codec.c
index 22e3cde9093e..a019cab27cc9 100644
--- a/sys/arm64/rockchip/rk3328_codec.c
+++ b/sys/arm64/rockchip/rk3328_codec.c
@@ -416,18 +416,8 @@ static int
rkcodec_mixer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
{
struct rkcodec_softc *sc;
- struct mtx *mixer_lock;
- uint8_t do_unlock;
sc = device_get_softc(mix_getdevinfo(m));
- mixer_lock = mixer_get_lock(m);
-
- if (mtx_owned(mixer_lock)) {
- do_unlock = 0;
- } else {
- do_unlock = 1;
- mtx_lock(mixer_lock);
- }
right = left;
@@ -443,10 +433,6 @@ rkcodec_mixer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned rig
}
RKCODEC_UNLOCK(sc);
- if (do_unlock) {
- mtx_unlock(mixer_lock);
- }
-
return (left | (right << 8));
}
diff --git a/sys/dev/sound/macio/onyx.c b/sys/dev/sound/macio/onyx.c
index f4f825a705cc..5ba22dd7c495 100644
--- a/sys/dev/sound/macio/onyx.c
+++ b/sys/dev/sound/macio/onyx.c
@@ -268,38 +268,21 @@ static int
onyx_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
{
struct onyx_softc *sc;
- struct mtx *mixer_lock;
- int locked;
uint8_t l, r;
sc = device_get_softc(mix_getdevinfo(m));
- mixer_lock = mixer_get_lock(m);
- locked = mtx_owned(mixer_lock);
switch (dev) {
case SOUND_MIXER_VOLUME:
-
- /*
- * We need to unlock the mixer lock because iicbus_transfer()
- * may sleep. The mixer lock itself is unnecessary here
- * because it is meant to serialize hardware access, which
- * is taken care of by the I2C layer, so this is safe.
- */
if (left > 100 || right > 100)
return (0);
l = left + 128;
r = right + 128;
- if (locked)
- mtx_unlock(mixer_lock);
-
onyx_write(sc, PCM3052_REG_LEFT_ATTN, l);
onyx_write(sc, PCM3052_REG_RIGHT_ATTN, r);
- if (locked)
- mtx_lock(mixer_lock);
-
return (left | (right << 8));
}
diff --git a/sys/dev/sound/macio/snapper.c b/sys/dev/sound/macio/snapper.c
index f14009f447a8..ed83990d563b 100644
--- a/sys/dev/sound/macio/snapper.c
+++ b/sys/dev/sound/macio/snapper.c
@@ -436,14 +436,10 @@ static int
snapper_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
{
struct snapper_softc *sc;
- struct mtx *mixer_lock;
- int locked;
u_int l, r;
u_char reg[6];
sc = device_get_softc(mix_getdevinfo(m));
- mixer_lock = mixer_get_lock(m);
- locked = mtx_owned(mixer_lock);
if (left > 100 || right > 100)
return (0);
@@ -460,21 +456,8 @@ snapper_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
reg[4] = (r & 0x00ff00) >> 8;
reg[5] = r & 0x0000ff;
- /*
- * We need to unlock the mixer lock because iicbus_transfer()
- * may sleep. The mixer lock itself is unnecessary here
- * because it is meant to serialize hardware access, which
- * is taken care of by the I2C layer, so this is safe.
- */
-
- if (locked)
- mtx_unlock(mixer_lock);
-
snapper_write(sc, SNAPPER_VOLUME, reg);
- if (locked)
- mtx_lock(mixer_lock);
-
return (left | (right << 8));
}
diff --git a/sys/dev/sound/macio/tumbler.c b/sys/dev/sound/macio/tumbler.c
index bd40ea6b4f6b..89af4434e7fe 100644
--- a/sys/dev/sound/macio/tumbler.c
+++ b/sys/dev/sound/macio/tumbler.c
@@ -383,14 +383,10 @@ static int
tumbler_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
{
struct tumbler_softc *sc;
- struct mtx *mixer_lock;
- int locked;
u_int l, r;
u_char reg[6];
sc = device_get_softc(mix_getdevinfo(m));
- mixer_lock = mixer_get_lock(m);
- locked = mtx_owned(mixer_lock);
switch (dev) {
case SOUND_MIXER_VOLUME:
@@ -407,21 +403,8 @@ tumbler_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right)
reg[4] = (r & 0x00ff00) >> 8;
reg[5] = r & 0x0000ff;
- /*
- * We need to unlock the mixer lock because iicbus_transfer()
- * may sleep. The mixer lock itself is unnecessary here
- * because it is meant to serialize hardware access, which
- * is taken care of by the I2C layer, so this is safe.
- */
-
- if (locked)
- mtx_unlock(mixer_lock);
-
tumbler_write(sc, TUMBLER_VOLUME, reg);
- if (locked)
- mtx_lock(mixer_lock);
-
return (left | (right << 8));
}