Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d695e4ea authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela
Browse files

ALSA: intel8x0 - use snd_pci_quirk for clock list



Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent 90f31e38
Loading
Loading
Loading
Loading
+15 −25
Original line number Diff line number Diff line
@@ -2692,37 +2692,27 @@ static void __devinit intel8x0_measure_ac97_clock(struct intel8x0 *chip)
	snd_ac97_update_power(chip->ac97[0], AC97_PCM_FRONT_DAC_RATE, 0);
}

struct intel8x0_clock_list {
	unsigned short subvendor;
	unsigned short subdevice;
	unsigned int rate;
};

static struct intel8x0_clock_list intel8x0_clock_list[] __devinitdata = {
	{ 0x0e11, 0x008a, 41000 },	/* Analog Devices AD1885 */
	{ 0x1028, 0x00be, 44100 },	/* Analog Devices AD1885 */
	{ 0x1028, 0x0177, 48000 },	/* Analog Devices AD1980 */
	{ 0x1043, 0x80f3, 48000 },	/* Analog Devices AD1985 */
	{ 0x0000, 0x0000, 00000 }	/* terminator */
static struct snd_pci_quirk intel8x0_clock_list[] __devinitdata = {
	SND_PCI_QUIRK(0x0e11, 0x008a, "AD1885", 41000),
	SND_PCI_QUIRK(0x1028, 0x00be, "AD1885", 44100),
	SND_PCI_QUIRK(0x1028, 0x0177, "AD1980", 48000),
	SND_PCI_QUIRK(0x1043, 0x80f3, "AD1985", 48000),
	{ }	/* terminator */
};

static int __devinit intel8x0_in_clock_list(struct intel8x0 *chip)
{
	struct pci_dev *pci = chip->pci;
	struct intel8x0_clock_list *wl;
	const struct snd_pci_quirk *wl;

	for (wl = intel8x0_clock_list; wl->subvendor; wl++) {
		if (wl->subvendor == pci->subsystem_vendor &&
		    wl->subdevice == pci->subsystem_device) {
	wl = snd_pci_quirk_lookup(pci, intel8x0_clock_list);
	if (!wl)
		return 0;
	printk(KERN_INFO "intel8x0: white list rate for %04x:%04x is %i\n",
				pci->subsystem_vendor,
				pci->subsystem_device, wl->rate);
			chip->ac97_bus->clock = wl->rate;
	       pci->subsystem_vendor, pci->subsystem_device, wl->value);
	chip->ac97_bus->clock = wl->value;
	return 1;
}
	}
	return 0;
}

#ifdef CONFIG_PROC_FS
static void snd_intel8x0_proc_read(struct snd_info_entry * entry,