Changeset 399 for GPL/branches/uniaud32-2.0/alsa-kernel/pci/intel8x0.c
- Timestamp:
- Oct 30, 2008, 9:57:08 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-2.0/alsa-kernel/pci/intel8x0.c
r358 r399 62 62 "{NVidia,nForce Audio}," 63 63 "{NVidia,nForce2 Audio}," 64 "{NVidia,nForce3 Audio}," 65 "{NVidia,MCP04}," 66 "{NVidia,MCP501}," 67 "{NVidia,CK804}," 68 "{NVidia,CK8}," 69 "{NVidia,CK8S}," 64 70 "{AMD,AMD768}," 65 71 "{AMD,AMD8111}," … … 80 86 MODULE_PARM_DESC(id, "ID string for Intel i8x0 soundcard."); 81 87 module_param(ac97_clock, int, 0444); 82 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = auto-detect).");88 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = whitelist + auto-detect, 1 = force autodetect)."); 83 89 module_param(ac97_quirk, charp, 0444); 84 90 MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware."); … … 1962 1968 { 1963 1969 .subvendor = 0x10cf, 1970 .subdevice = 0x127d, 1971 .name = "Fujitsu Lifebook P7010", 1972 .type = AC97_TUNE_HP_ONLY 1973 }, 1974 { 1975 .subvendor = 0x10cf, 1964 1976 .subdevice = 0x127e, 1965 1977 .name = "Fujitsu Lifebook C1211D", … … 2137 2149 chip->ac97_sdin[codecs] = 2138 2150 igetbyte(chip, ICHREG(SDM)) & ICH_LDI_MASK; 2139 snd_assert(chip->ac97_sdin[codecs] < 3,2140 chip->ac97_sdin[codecs] = 0);2151 if (snd_BUG_ON(chip->ac97_sdin[codecs] >= 3)) 2152 chip->ac97_sdin[codecs] = 0; 2141 2153 } else 2142 2154 chip->ac97_sdin[codecs] = i; … … 2689 2701 printk(KERN_INFO "intel8x0: clocking to %d\n", chip->ac97_bus->clock); 2690 2702 snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0); 2703 } 2704 2705 static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = { 2706 SND_PCI_QUIRK(0x0e11, 0x008a, "AD1885", 41000), 2707 SND_PCI_QUIRK(0x1028, 0x00be, "AD1885", 44100), 2708 SND_PCI_QUIRK(0x1028, 0x0177, "AD1980", 48000), 2709 SND_PCI_QUIRK(0x1043, 0x80f3, "AD1985", 48000), 2710 {0} /* terminator */ 2711 }; 2712 2713 static int __devinit intel8x0_in_clock_list(struct intel8x0 *chip) 2714 { 2715 struct pci_dev *pci = chip->pci; 2716 const struct snd_pci_quirk *wl; 2717 2718 wl = snd_pci_quirk_lookup(pci, intel8x0_clock_list); 2719 if (!wl) 2720 return 0; 2721 printk(KERN_INFO "intel8x0: white list rate for %04x:%04x is %i\n", 2722 pci->subsystem_vendor, pci->subsystem_device, wl->value); 2723 chip->ac97_bus->clock = wl->value; 2724 return 1; 2691 2725 } 2692 2726 … … 3088 3122 snd_ac97_get_short_name(chip->ac97[0]), chip->irq); 3089 3123 3090 if (! ac97_clock) 3091 intel8x0_measure_ac97_clock(chip); 3124 if (ac97_clock == 0 || ac97_clock == 1) { 3125 if (ac97_clock == 0) { 3126 if (intel8x0_in_clock_list(chip) == 0) 3127 intel8x0_measure_ac97_clock(chip); 3128 } else { 3129 intel8x0_measure_ac97_clock(chip); 3130 } 3131 } 3092 3132 3093 3133 if ((err = snd_card_register(card)) < 0) {
Note:
See TracChangeset
for help on using the changeset viewer.