1/*- 2 * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca> 3 * Copyright (c) 2006 Ariff Abdullah <ariff@FreeBSD.org> 4 * Copyright (c) 2008 Alexander Motin <mav@FreeBSD.org> 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 69 unchanged lines hidden (view full) --- 78 79#include <dev/sound/pci/hda/hdac_private.h> 80#include <dev/sound/pci/hda/hdac_reg.h> 81#include <dev/sound/pci/hda/hda_reg.h> 82#include <dev/sound/pci/hda/hdac.h> 83 84#include "mixer_if.h" 85 |
86#define HDA_DRV_TEST_REV "20081223_0121" |
87 |
88SND_DECLARE_FILE("$FreeBSD: head/sys/dev/sound/pci/hda/hdac.c 186430 2008-12-23 14:58:08Z mav $"); |
89 90#define HDA_BOOTVERBOSE(stmt) do { \ 91 if (bootverbose != 0 || snd_verbose > 3) { \ 92 stmt \ 93 } \ 94} while(0) 95 96#define HDA_BOOTHVERBOSE(stmt) do { \ --- 556 unchanged lines hidden (view full) --- 653#define SII_VENDORID 0x1095 654#define HDA_CODEC_SII1392 HDA_CODEC_CONSTRUCT(SII, 0x1392) 655#define HDA_CODEC_SIIXXXX HDA_CODEC_CONSTRUCT(SII, 0xffff) 656 657/* Lucent/Agere */ 658#define AGERE_VENDORID 0x11c1 659#define HDA_CODEC_AGEREXXXX HDA_CODEC_CONSTRUCT(AGERE, 0xffff) 660 |
661/* Conexant */ |
662#define CONEXANT_VENDORID 0x14f1 |
663#define HDA_CODEC_CX20549 HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045) 664#define HDA_CODEC_CX20551 HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047) 665#define HDA_CODEC_CX20561 HDA_CODEC_CONSTRUCT(CONEXANT, 0x5051) |
666#define HDA_CODEC_CXXXXX HDA_CODEC_CONSTRUCT(CONEXANT, 0xffff) 667 668/* VIA */ 669#define HDA_CODEC_VT1708_8 HDA_CODEC_CONSTRUCT(VIA, 0x1708) 670#define HDA_CODEC_VT1708_9 HDA_CODEC_CONSTRUCT(VIA, 0x1709) 671#define HDA_CODEC_VT1708_A HDA_CODEC_CONSTRUCT(VIA, 0x170a) 672#define HDA_CODEC_VT1708_B HDA_CODEC_CONSTRUCT(VIA, 0x170b) 673#define HDA_CODEC_VT1709_0 HDA_CODEC_CONSTRUCT(VIA, 0xe710) --- 111 unchanged lines hidden (view full) --- 785 { HDA_CODEC_IDT92HD73D1, "IDT 92HD73D1" }, 786 { HDA_CODEC_IDT92HD73E1, "IDT 92HD73E1" }, 787 { HDA_CODEC_IDT92HD75B3, "IDT 92HD75B3" }, 788 { HDA_CODEC_IDT92HD75BX, "IDT 92HD75BX" }, 789 { HDA_CODEC_IDT92HD81B1C, "IDT 92HD81B1C" }, 790 { HDA_CODEC_IDT92HD81B1X, "IDT 92HD81B1X" }, 791 { HDA_CODEC_IDT92HD83C1C, "IDT 92HD83C1C" }, 792 { HDA_CODEC_IDT92HD83C1X, "IDT 92HD83C1X" }, |
793 { HDA_CODEC_CX20549, "Conexant CX20549 (Venice)" }, 794 { HDA_CODEC_CX20551, "Conexant CX20551 (Waikiki)" }, 795 { HDA_CODEC_CX20561, "Conexant CX20561 (Hermosa)" }, |
796 { HDA_CODEC_VT1708_8, "VIA VT1708_8" }, 797 { HDA_CODEC_VT1708_9, "VIA VT1708_9" }, 798 { HDA_CODEC_VT1708_A, "VIA VT1708_A" }, 799 { HDA_CODEC_VT1708_B, "VIA VT1708_B" }, 800 { HDA_CODEC_VT1709_0, "VIA VT1709_0" }, 801 { HDA_CODEC_VT1709_1, "VIA VT1709_1" }, 802 { HDA_CODEC_VT1709_2, "VIA VT1709_2" }, 803 { HDA_CODEC_VT1709_3, "VIA VT1709_3" }, --- 1453 unchanged lines hidden (view full) --- 2257 break; 2258 case 28: 2259 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2260 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2261 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_CD | 2262 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2263 break; 2264 } |
2265 } else if (id == HDA_CODEC_CX20549 && sc->pci_subvendor == |
2266 HP_V3000_SUBVENDOR) { 2267 switch (nid) { 2268 case 18: 2269 config &= ~HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK; 2270 config |= HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE; 2271 break; 2272 case 20: 2273 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2274 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2275 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 2276 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2277 break; 2278 case 21: 2279 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2280 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2281 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_CD | 2282 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2283 break; 2284 } |
2285 } else if (id == HDA_CODEC_CX20551 && sc->pci_subvendor == |
2286 HP_DV5000_SUBVENDOR) { 2287 switch (nid) { 2288 case 20: 2289 case 21: 2290 config &= ~HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK; 2291 config |= HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE; 2292 break; 2293 } --- 2188 unchanged lines hidden (view full) --- 4482 { DELL_V1400_SUBVENDOR, HDA_CODEC_STAC9228X, 4483 HDA_QUIRK_GPIO2, 0 }, 4484 { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205X, 4485 HDA_QUIRK_GPIO0, 0 }, 4486 { HDA_MATCH_ALL, HDA_CODEC_AD1988, 4487 HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 }, 4488 { HDA_MATCH_ALL, HDA_CODEC_AD1988B, 4489 HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 }, |
4490 { HDA_MATCH_ALL, HDA_CODEC_CX20549, |
4491 0, HDA_QUIRK_FORCESTEREO } 4492}; 4493#define HDAC_QUIRKS_LEN (sizeof(hdac_quirks) / sizeof(hdac_quirks[0])) 4494 4495static void 4496hdac_vendor_patch_parse(struct hdac_devinfo *devinfo) 4497{ 4498 struct hdac_widget *w; --- 3350 unchanged lines hidden --- |