diff options
author | Jacob Meuser <jakemsr@cvs.openbsd.org> | 2008-11-30 04:01:54 +0000 |
---|---|---|
committer | Jacob Meuser <jakemsr@cvs.openbsd.org> | 2008-11-30 04:01:54 +0000 |
commit | 481b3bf8733ebb3525701ebc5e8f04792d1026d1 (patch) | |
tree | 1902c9ec54788a0828a25cc4b559e27061eb2978 /sys/dev/pci/azalia_codec.c | |
parent | 1fc4c9fdf9bd9dac8f8765f24498751e35c98ab4 (diff) |
don't rebuild the list of supported formats if it isn't going
to change.
Diffstat (limited to 'sys/dev/pci/azalia_codec.c')
-rw-r--r-- | sys/dev/pci/azalia_codec.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/sys/dev/pci/azalia_codec.c b/sys/dev/pci/azalia_codec.c index 3de3d109700..c1561c9ae88 100644 --- a/sys/dev/pci/azalia_codec.c +++ b/sys/dev/pci/azalia_codec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: azalia_codec.c,v 1.76 2008/11/30 03:50:29 jakemsr Exp $ */ +/* $OpenBSD: azalia_codec.c,v 1.77 2008/11/30 04:01:53 jakemsr Exp $ */ /* $NetBSD: azalia_codec.c,v 1.8 2006/05/10 11:17:27 kent Exp $ */ /*- @@ -1535,8 +1535,11 @@ azalia_generic_mixer_set(codec_t *this, nid_t nid, int target, return EBUSY; if (mc->un.ord >= this->dacs.ngroups) return EINVAL; - return azalia_codec_construct_format(this, - mc->un.ord, this->adcs.cur); + if (mc->un.ord != this->dacs.cur) + return azalia_codec_construct_format(this, + mc->un.ord, this->adcs.cur); + else + return 0; } /* ADC selection */ @@ -1545,8 +1548,11 @@ azalia_generic_mixer_set(codec_t *this, nid_t nid, int target, return EBUSY; if (mc->un.ord >= this->adcs.ngroups) return EINVAL; - return azalia_codec_construct_format(this, - this->dacs.cur, mc->un.ord); + if (mc->un.ord != this->adcs.cur) + return azalia_codec_construct_format(this, + this->dacs.cur, mc->un.ord); + else + return 0; } /* Volume knob */ |