diff options
| author | Takashi Iwai <tiwai@suse.de> | 2006-11-24 15:34:06 +0100 | 
|---|---|---|
| committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-09 09:01:48 +0100 | 
| commit | d9ea472c743ccd7344055cb118bc210befbd8007 (patch) | |
| tree | 144815385e7c37c36ac79e5235919828120a64e7 /sound/core/misc.c | |
| parent | 048b945077bdc7e8dff5d5810ff2a0ced3590ca9 (diff) | |
| download | olio-linux-3.10-d9ea472c743ccd7344055cb118bc210befbd8007.tar.xz olio-linux-3.10-d9ea472c743ccd7344055cb118bc210befbd8007.zip  | |
[ALSA] Add PCI quirk list helper function
Added a helper function snd_pci_quirk_lookup()
to look up PCI SSID quirk list.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/core/misc.c')
| -rw-r--r-- | sound/core/misc.c | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/sound/core/misc.c b/sound/core/misc.c index 03fc711f412..6db86a7c970 100644 --- a/sound/core/misc.c +++ b/sound/core/misc.c @@ -78,3 +78,31 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...)  EXPORT_SYMBOL(snd_verbose_printd);  #endif + +#ifdef CONFIG_PCI +#include <linux/pci.h> +/** + * snd_pci_quirk_lookup - look up a PCI SSID quirk list + * @pci: pci_dev handle + * @list: quirk list, terminated by a null entry + * + * Look through the given quirk list and finds a matching entry + * with the same PCI SSID.  When subdevice is 0, all subdevice + * values may match. + * + * Returns the matched entry pointer, or NULL if nothing matched. + */ +const struct snd_pci_quirk * +snd_pci_quirk_lookup(struct pci_dev *pci, const struct snd_pci_quirk *list) +{ +	const struct snd_pci_quirk *q; + +	for (q = list; q->subvendor; q++) +		if (q->subvendor == pci->subsystem_vendor && +		    (!q->subdevice || q->subdevice == pci->subsystem_device)) +			return q; +	return NULL; +} + +EXPORT_SYMBOL(snd_pci_quirk_lookup); +#endif  |