aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/sound/pcm
diff options
context:
space:
mode:
authorChristos Margiolis <christos@FreeBSD.org>2026-04-07 15:44:39 +0000
committerChristos Margiolis <christos@FreeBSD.org>2026-04-07 15:44:39 +0000
commit8007a78bfe1f41b7055f8677f8ac9ae4cc2fbc7c (patch)
treef3ab835343478fc3eb126d690cf2f06f4674e90f /sys/dev/sound/pcm
parent66a82f5fa471b8eda018b7566c3725a6742dfc0c (diff)
Diffstat (limited to 'sys/dev/sound/pcm')
-rw-r--r--sys/dev/sound/pcm/channel.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
index 0b940fe4e843..c1e0d8d3bc52 100644
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -1059,7 +1059,7 @@ snd_afmt2str(uint32_t afmt, char *buf, size_t len)
int
chn_reset(struct pcm_channel *c, uint32_t fmt, uint32_t spd)
{
- int r;
+ int err;
CHN_LOCKASSERT(c);
c->feedcount = 0;
@@ -1071,23 +1071,26 @@ chn_reset(struct pcm_channel *c, uint32_t fmt, uint32_t spd)
c->flags |= (pcm_getflags(c->dev) & SD_F_BITPERFECT) ?
CHN_F_BITPERFECT : 0;
- r = CHANNEL_RESET(c->methods, c->devinfo);
- if (r == 0 && fmt != 0 && spd != 0) {
- r = chn_setparam(c, fmt, spd);
+ if ((err = CHANNEL_RESET(c->methods, c->devinfo)))
+ return (err);
+
+ if (fmt != 0 && spd != 0) {
+ if ((err = chn_setparam(c, fmt, spd)))
+ return (err);
fmt = 0;
spd = 0;
}
- if (r == 0 && fmt != 0)
- r = chn_setformat(c, fmt);
- if (r == 0 && spd != 0)
- r = chn_setspeed(c, spd);
- if (r == 0)
- r = chn_setlatency(c, chn_latency);
- if (r == 0) {
- chn_resetbuf(c);
- r = CHANNEL_RESETDONE(c->methods, c->devinfo);
- }
- return r;
+ if (fmt != 0 && (err = chn_setformat(c, fmt)))
+ return (err);
+ if (spd != 0 && (err = chn_setspeed(c, spd)))
+ return (err);
+
+ if ((err = chn_setlatency(c, chn_latency)))
+ return (err);
+
+ chn_resetbuf(c);
+
+ return (CHANNEL_RESETDONE(c->methods, c->devinfo));
}
static struct unrhdr *