summaryrefslogtreecommitdiff
path: root/sys/dev/sound
diff options
context:
space:
mode:
authorAriff Abdullah <ariff@FreeBSD.org>2007-12-15 04:06:12 +0000
committerAriff Abdullah <ariff@FreeBSD.org>2007-12-15 04:06:12 +0000
commit9edf09d9846221707ecbdce06558b5aed900f85f (patch)
tree322b4d4eb09bb7005eb6c0834555139a4ed0b840 /sys/dev/sound
parent98f4ad8758e7933d680550ac67eb3f63905b003d (diff)
Notes
Diffstat (limited to 'sys/dev/sound')
-rw-r--r--sys/dev/sound/pci/hda/hdac.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c
index 9a920dbb5f80..a09df97cddcb 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 ?) */
@@ -2168,6 +2169,18 @@ hdac_widget_pin_getconfig(struct hdac_widget *w)
default:
break;
}
+ } else if (id == HDA_CODEC_ALC268 &&
+ HDA_DEV_MATCH(ACER_ALL_SUBVENDOR, sc->pci_subvendor)) {
+ switch (nid) {
+ case 28:
+ config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK |
+ HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK);
+ config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_CD |
+ HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED);
+ break;
+ default:
+ break;
+ }
}
HDA_BOOTVERBOSE(
@@ -4292,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;