Deleted Added
full compact
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 ---