diff options
author | ariff <ariff@FreeBSD.org> | 2007-12-13 15:48:45 +0000 |
---|---|---|
committer | ariff <ariff@FreeBSD.org> | 2007-12-13 15:48:45 +0000 |
commit | ebfb37b283a298d5d7cf2a05d7ed00eda7fb87cf (patch) | |
tree | 7023960ac883e60a5efb5bf6caa64267ff4ed152 | |
parent | cb78c6c574e83859b6fe44b6c3de3c05e1600431 (diff) | |
download | FreeBSD-src-ebfb37b283a298d5d7cf2a05d7ed00eda7fb87cf.zip FreeBSD-src-ebfb37b283a298d5d7cf2a05d7ed00eda7fb87cf.tar.gz |
Add speaker/headphone controls for HP Compaq DC7700 Small Form Factor PC
@ ALC262.
Submitted by: Carlos A. M. dos Santos <unixmania at gmail dot com>
-rw-r--r-- | sys/dev/sound/pci/hda/hdac.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index c9e68e5..a09df97 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -179,6 +179,7 @@ SND_DECLARE_FILE("$FreeBSD$"); #define HP_XW4300_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x3013) #define HP_3010_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x3010) #define HP_DV5000_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x30a5) +#define HP_DC7700S_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x2801) #define HP_DC7700_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0x2802) #define HP_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(HP, 0xffff) /* What is wrong with XN 2563 anyway? (Got the picture ?) */ @@ -4304,7 +4305,18 @@ hdac_vendor_patch_parse(struct hdac_devinfo *devinfo) } break; case HDA_CODEC_ALC262: - if (subvendor == HP_DC7700_SUBVENDOR) { + if (subvendor == HP_DC7700S_SUBVENDOR) { + ctl = hdac_audio_ctl_amp_get(devinfo, 21, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_PHONEOUT; + ctl->widget->ctlflags |= SOUND_MASK_PHONEOUT; + } + ctl = hdac_audio_ctl_amp_get(devinfo, 22, 0, 1); + if (ctl != NULL && ctl->widget != NULL) { + ctl->ossmask = SOUND_MASK_SPEAKER; + ctl->widget->ctlflags |= SOUND_MASK_SPEAKER; + } + } else if (subvendor == HP_DC7700_SUBVENDOR) { ctl = hdac_audio_ctl_amp_get(devinfo, 22, 0, 1); if (ctl != NULL && ctl->widget != NULL) { ctl->ossmask = SOUND_MASK_SPEAKER; |