summaryrefslogtreecommitdiff
path: root/sys/dev/sound/pci/cmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/sound/pci/cmi.c')
-rw-r--r--sys/dev/sound/pci/cmi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/sound/pci/cmi.c b/sys/dev/sound/pci/cmi.c
index ce1db2e7b585..c52bbd6982cd 100644
--- a/sys/dev/sound/pci/cmi.c
+++ b/sys/dev/sound/pci/cmi.c
@@ -475,12 +475,16 @@ cmichan_trigger(kobj_t obj, void *data, int go)
struct sc_chinfo *ch = data;
struct sc_info *sc = ch->parent;
+ if (!PCMTRIG_COMMON(go))
+ return 0;
+
snd_mtxlock(sc->lock);
if (ch->dir == PCMDIR_PLAY) {
switch(go) {
case PCMTRIG_START:
cmi_ch0_start(sc, ch);
break;
+ case PCMTRIG_STOP:
case PCMTRIG_ABORT:
cmi_ch0_stop(sc, ch);
break;
@@ -490,6 +494,7 @@ cmichan_trigger(kobj_t obj, void *data, int go)
case PCMTRIG_START:
cmi_ch1_start(sc, ch);
break;
+ case PCMTRIG_STOP:
case PCMTRIG_ABORT:
cmi_ch1_stop(sc, ch);
break;