From 8a06e2d8b9adee5fc2cbbf915e294bda53cc373c Mon Sep 17 00:00:00 2001 From: nakayama Date: Tue, 25 Sep 2018 06:55:23 +0000 Subject: pad(4) mixer has only 1 channel, so return EINVAL in the case other than 1. This fixes the following strange output of mixerctl(1): outputs.master=255,0 inputs.dac=255,0 --- sys/dev/pad/pad.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/pad/pad.c b/sys/dev/pad/pad.c index e38c36c27dd..73146493869 100644 --- a/sys/dev/pad/pad.c +++ b/sys/dev/pad/pad.c @@ -1,4 +1,4 @@ -/* $NetBSD: pad.c,v 1.57 2018/09/25 06:53:49 nakayama Exp $ */ +/* $NetBSD: pad.c,v 1.58 2018/09/25 06:55:23 nakayama Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pad.c,v 1.57 2018/09/25 06:53:49 nakayama Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pad.c,v 1.58 2018/09/25 06:55:23 nakayama Exp $"); #include #include @@ -781,6 +781,8 @@ pad_set_port(void *opaque, mixer_ctrl_t *mc) switch (mc->dev) { case PAD_OUTPUT_MASTER_VOLUME: case PAD_INPUT_DAC_VOLUME: + if (mc->un.value.num_channels != 1) + return EINVAL; sc->sc_swvol = mc->un.value.level[AUDIO_MIXER_LEVEL_MONO]; return 0; } @@ -800,6 +802,8 @@ pad_get_port(void *opaque, mixer_ctrl_t *mc) switch (mc->dev) { case PAD_OUTPUT_MASTER_VOLUME: case PAD_INPUT_DAC_VOLUME: + if (mc->un.value.num_channels != 1) + return EINVAL; mc->un.value.level[AUDIO_MIXER_LEVEL_MONO] = sc->sc_swvol; return 0; } -- cgit