summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorGarrett D'Amore <gdamore@opensolaris.org>2009-10-25 21:17:26 -0700
committerGarrett D'Amore <gdamore@opensolaris.org>2009-10-25 21:17:26 -0700
commit4a20ca87c19352fb04bb75918ba0231663faa6a8 (patch)
tree065f90d9c6177a7517313ab0a545c2b3303457c3 /usr/src
parente2b0eee61c017ae644a21eb00048a7e27050b265 (diff)
downloadillumos-joyent-4a20ca87c19352fb04bb75918ba0231663faa6a8.tar.gz
6894986 assertion() failure in audiols
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/io/audio/drv/audiols/audiols.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/audio/drv/audiols/audiols.c b/usr/src/uts/common/io/audio/drv/audiols/audiols.c
index e25f81719a..f167507dcb 100644
--- a/usr/src/uts/common/io/audio/drv/audiols/audiols.c
+++ b/usr/src/uts/common/io/audio/drv/audiols/audiols.c
@@ -743,6 +743,17 @@ audigyls_setup_intrs(audigyls_dev_t *dev)
}
void
+audigyls_del_controls(audigyls_dev_t *dev)
+{
+ for (int i = 0; i < CTL_NUM; i++) {
+ if (dev->controls[i].ctrl) {
+ audio_dev_del_control(dev->controls[i].ctrl);
+ dev->controls[i].ctrl = NULL;
+ }
+ }
+}
+
+void
audigyls_destroy(audigyls_dev_t *dev)
{
if (dev->ih != NULL) {
@@ -780,6 +791,9 @@ audigyls_destroy(audigyls_dev_t *dev)
if (dev->ac97 != NULL) {
ac97_free(dev->ac97);
}
+
+ audigyls_del_controls(dev);
+
if (dev->adev != NULL) {
audio_dev_free(dev->adev);
}
@@ -959,8 +973,6 @@ audigyls_configure_mixer(audigyls_dev_t *dev)
{
unsigned int r, v1, v2;
- ASSERT(mutex_owned(&dev->mutex));
-
/* output items */
/* front */
r = 0xffff - audigyls_stereo_scale(dev->controls[CTL_FRONT].val, 8);