diff options
| author | Garrett D'Amore <gdamore@opensolaris.org> | 2009-12-22 21:03:06 -0800 |
|---|---|---|
| committer | Garrett D'Amore <gdamore@opensolaris.org> | 2009-12-22 21:03:06 -0800 |
| commit | 2be7def9bac9cc5b894988030377b62ee6be9c39 (patch) | |
| tree | 981b830a09a4df1638257027ba46f6c7573c5e0a /usr/src | |
| parent | 7f8098eddd24ef5d0d43749a8f4c2c245bdcc077 (diff) | |
| download | illumos-joyent-2be7def9bac9cc5b894988030377b62ee6be9c39.tar.gz | |
6912601 audiocmi volume control non-functional on CMI8768
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.c | 7 | ||||
| -rw-r--r-- | usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.h | 8 |
2 files changed, 8 insertions, 7 deletions
diff --git a/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.c b/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.c index 79a16dc080..677e5e9c90 100644 --- a/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.c +++ b/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.c @@ -706,7 +706,11 @@ cmpci_alloc_ctrl(cmpci_dev_t *dev, uint32_t num, uint64_t val) static void cmpci_add_controls(cmpci_dev_t *dev) { - cmpci_alloc_ctrl(dev, CTL_VOLUME, 75); + if (dev->softvol) { + (void) audio_dev_add_soft_volume(dev->adev); + } else { + cmpci_alloc_ctrl(dev, CTL_VOLUME, 75); + } cmpci_alloc_ctrl(dev, CTL_LINEOUT, 90 | (90 << 8)); cmpci_alloc_ctrl(dev, CTL_SPEAKER, 75); cmpci_alloc_ctrl(dev, CTL_MIC, 32); @@ -1105,6 +1109,7 @@ cmpci_attach(dev_info_t *dip) } else if ((val & INTCTRL_MDL_068) == INTCTRL_MDL_068) { audio_dev_set_version(adev, "CMI-8768"); dev->maxch = 8; + dev->softvol = B_TRUE; /* No hardware PCM volume */ } else if ((val & INTCTRL_MDL_055) == INTCTRL_MDL_055) { audio_dev_set_version(adev, "CMI-8738-055"); dev->maxch = 6; diff --git a/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.h b/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.h index 5404ff9d35..5c20ab1b09 100644 --- a/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.h +++ b/usr/src/uts/common/io/audio/drv/audiocmi/audiocmi.h @@ -302,17 +302,13 @@ struct cmpci_dev { ddi_acc_handle_t acch; caddr_t regs; + boolean_t softvol; + int pintrs; int rintrs; ddi_intr_handle_t ihandle; kstat_t *ksp; - int model; -#define MDL_CM8738 1 -#define MDL_CM8338A 2 -#define MDL_CM8338B 3 -#define MDL_CM8768 4 - int maxch; boolean_t suspended; |
