diff options
| author | Ariff Abdullah <ariff@FreeBSD.org> | 2007-12-15 04:06:12 +0000 |
|---|---|---|
| committer | Ariff Abdullah <ariff@FreeBSD.org> | 2007-12-15 04:06:12 +0000 |
| commit | 9edf09d9846221707ecbdce06558b5aed900f85f (patch) | |
| tree | 322b4d4eb09bb7005eb6c0834555139a4ed0b840 /sys/dev/sound | |
| parent | 98f4ad8758e7933d680550ac67eb3f63905b003d (diff) | |
Notes
Diffstat (limited to 'sys/dev/sound')
| -rw-r--r-- | sys/dev/sound/pci/hda/hdac.c | 26 |
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; |
