hdac.c (186403) | hdac.c (186430) |
---|---|
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 | 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_0120" | 86#define HDA_DRV_TEST_REV "20081223_0121" |
87 | 87 |
88SND_DECLARE_FILE("$FreeBSD: head/sys/dev/sound/pci/hda/hdac.c 186403 2008-12-22 22:40:17Z mav $"); | 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 | 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/* 662 * Conexant 663 * 664 * Ok, the truth is, I don't have any idea at all whether 665 * it is "Venice" or "Waikiki" or other unnamed CXyadayada. The only 666 * place that tell me it is "Venice" is from its Windows driver INF. 667 * 668 * Venice - CX????? 669 * Waikiki - CX20551-22 670 */ | 661/* Conexant */ |
671#define CONEXANT_VENDORID 0x14f1 | 662#define CONEXANT_VENDORID 0x14f1 |
672#define HDA_CODEC_CXVENICE HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045) 673#define HDA_CODEC_CXWAIKIKI HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047) | 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) |
674#define HDA_CODEC_CXXXXX HDA_CODEC_CONSTRUCT(CONEXANT, 0xffff) 675 676/* VIA */ 677#define HDA_CODEC_VT1708_8 HDA_CODEC_CONSTRUCT(VIA, 0x1708) 678#define HDA_CODEC_VT1708_9 HDA_CODEC_CONSTRUCT(VIA, 0x1709) 679#define HDA_CODEC_VT1708_A HDA_CODEC_CONSTRUCT(VIA, 0x170a) 680#define HDA_CODEC_VT1708_B HDA_CODEC_CONSTRUCT(VIA, 0x170b) 681#define HDA_CODEC_VT1709_0 HDA_CODEC_CONSTRUCT(VIA, 0xe710) --- 111 unchanged lines hidden (view full) --- 793 { HDA_CODEC_IDT92HD73D1, "IDT 92HD73D1" }, 794 { HDA_CODEC_IDT92HD73E1, "IDT 92HD73E1" }, 795 { HDA_CODEC_IDT92HD75B3, "IDT 92HD75B3" }, 796 { HDA_CODEC_IDT92HD75BX, "IDT 92HD75BX" }, 797 { HDA_CODEC_IDT92HD81B1C, "IDT 92HD81B1C" }, 798 { HDA_CODEC_IDT92HD81B1X, "IDT 92HD81B1X" }, 799 { HDA_CODEC_IDT92HD83C1C, "IDT 92HD83C1C" }, 800 { HDA_CODEC_IDT92HD83C1X, "IDT 92HD83C1X" }, | 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" }, |
801 { HDA_CODEC_CXVENICE, "Conexant Venice" }, 802 { HDA_CODEC_CXWAIKIKI, "Conexant Waikiki" }, | 793 { HDA_CODEC_CX20549, "Conexant CX20549 (Venice)" }, 794 { HDA_CODEC_CX20551, "Conexant CX20551 (Waikiki)" }, 795 { HDA_CODEC_CX20561, "Conexant CX20561 (Hermosa)" }, |
803 { HDA_CODEC_VT1708_8, "VIA VT1708_8" }, 804 { HDA_CODEC_VT1708_9, "VIA VT1708_9" }, 805 { HDA_CODEC_VT1708_A, "VIA VT1708_A" }, 806 { HDA_CODEC_VT1708_B, "VIA VT1708_B" }, 807 { HDA_CODEC_VT1709_0, "VIA VT1709_0" }, 808 { HDA_CODEC_VT1709_1, "VIA VT1709_1" }, 809 { HDA_CODEC_VT1709_2, "VIA VT1709_2" }, 810 { HDA_CODEC_VT1709_3, "VIA VT1709_3" }, --- 1453 unchanged lines hidden (view full) --- 2264 break; 2265 case 28: 2266 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2267 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2268 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_CD | 2269 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2270 break; 2271 } | 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 } |
2272 } else if (id == HDA_CODEC_CXVENICE && sc->pci_subvendor == | 2265 } else if (id == HDA_CODEC_CX20549 && sc->pci_subvendor == |
2273 HP_V3000_SUBVENDOR) { 2274 switch (nid) { 2275 case 18: 2276 config &= ~HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK; 2277 config |= HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE; 2278 break; 2279 case 20: 2280 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2281 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2282 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN | 2283 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2284 break; 2285 case 21: 2286 config &= ~(HDA_CONFIG_DEFAULTCONF_DEVICE_MASK | 2287 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK); 2288 config |= (HDA_CONFIG_DEFAULTCONF_DEVICE_CD | 2289 HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_FIXED); 2290 break; 2291 } | 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 } |
2292 } else if (id == HDA_CODEC_CXWAIKIKI && sc->pci_subvendor == | 2285 } else if (id == HDA_CODEC_CX20551 && sc->pci_subvendor == |
2293 HP_DV5000_SUBVENDOR) { 2294 switch (nid) { 2295 case 20: 2296 case 21: 2297 config &= ~HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK; 2298 config |= HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE; 2299 break; 2300 } --- 2188 unchanged lines hidden (view full) --- 4489 { DELL_V1400_SUBVENDOR, HDA_CODEC_STAC9228X, 4490 HDA_QUIRK_GPIO2, 0 }, 4491 { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205X, 4492 HDA_QUIRK_GPIO0, 0 }, 4493 { HDA_MATCH_ALL, HDA_CODEC_AD1988, 4494 HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 }, 4495 { HDA_MATCH_ALL, HDA_CODEC_AD1988B, 4496 HDA_QUIRK_IVREF80, HDA_QUIRK_IVREF50 | HDA_QUIRK_IVREF100 }, | 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 }, |
4497 { HDA_MATCH_ALL, HDA_CODEC_CXVENICE, | 4490 { HDA_MATCH_ALL, HDA_CODEC_CX20549, |
4498 0, HDA_QUIRK_FORCESTEREO } 4499}; 4500#define HDAC_QUIRKS_LEN (sizeof(hdac_quirks) / sizeof(hdac_quirks[0])) 4501 4502static void 4503hdac_vendor_patch_parse(struct hdac_devinfo *devinfo) 4504{ 4505 struct hdac_widget *w; --- 3350 unchanged lines hidden --- | 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 --- |