summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pci/es137x.c
diff options
context:
space:
mode:
authorariff <ariff@FreeBSD.org>2007-06-11 00:49:46 +0000
committerariff <ariff@FreeBSD.org>2007-06-11 00:49:46 +0000
commitfafa308f2ba94d67208e15f425b8034c98a4eddf (patch)
tree795c3b5265f3bcbcabb27dd644db79e60a617e78 /sys/dev/sound/pci/es137x.c
parenta3226c8185423f9e8977c68b703d0f6f9676c357 (diff)
downloadFreeBSD-src-fafa308f2ba94d67208e15f425b8034c98a4eddf.zip
FreeBSD-src-fafa308f2ba94d67208e15f425b8034c98a4eddf.tar.gz
Filter/compress the amount of channel trigger. This should reduce
much of lock/unlock contentions within the interrupt handler. Most of these drivers only need PCMTRIG_START or STOP (ABORT). Discussed with: scottl
Diffstat (limited to 'sys/dev/sound/pci/es137x.c')
-rw-r--r--sys/dev/sound/pci/es137x.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/sound/pci/es137x.c b/sys/dev/sound/pci/es137x.c
index e7f1655..0daaad8 100644
--- a/sys/dev/sound/pci/es137x.c
+++ b/sys/dev/sound/pci/es137x.c
@@ -727,8 +727,8 @@ eschan_trigger(kobj_t obj, void *data, int go)
struct es_info *es = ch->parent;
uint32_t cnt, b = 0;
- if (go == PCMTRIG_EMLDMAWR || go == PCMTRIG_EMLDMARD)
- return (0);
+ if (!PCMTRIG_COMMON(go))
+ return 0;
ES_LOCK(es);
cnt = (ch->blksz / sndbuf_getbps(ch->buffer)) - 1;
OpenPOWER on IntegriCloud