diff options
author | Takashi Iwai <tiwai@suse.de> | 2006-11-24 09:34:06 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2007-02-09 03:01:48 -0500 |
commit | d9ea472c743ccd7344055cb118bc210befbd8007 (patch) | |
tree | 144815385e7c37c36ac79e5235919828120a64e7 /sound/core/misc.c | |
parent | 048b945077bdc7e8dff5d5810ff2a0ced3590ca9 (diff) |
[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 03fc711f4127..6db86a7c9704 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, ...) | |||
78 | 78 | ||
79 | EXPORT_SYMBOL(snd_verbose_printd); | 79 | EXPORT_SYMBOL(snd_verbose_printd); |
80 | #endif | 80 | #endif |
81 | |||
82 | #ifdef CONFIG_PCI | ||
83 | #include <linux/pci.h> | ||
84 | /** | ||
85 | * snd_pci_quirk_lookup - look up a PCI SSID quirk list | ||
86 | * @pci: pci_dev handle | ||
87 | * @list: quirk list, terminated by a null entry | ||
88 | * | ||
89 | * Look through the given quirk list and finds a matching entry | ||
90 | * with the same PCI SSID. When subdevice is 0, all subdevice | ||
91 | * values may match. | ||
92 | * | ||
93 | * Returns the matched entry pointer, or NULL if nothing matched. | ||
94 | */ | ||
95 | const struct snd_pci_quirk * | ||
96 | snd_pci_quirk_lookup(struct pci_dev *pci, const struct snd_pci_quirk *list) | ||
97 | { | ||
98 | const struct snd_pci_quirk *q; | ||
99 | |||
100 | for (q = list; q->subvendor; q++) | ||
101 | if (q->subvendor == pci->subsystem_vendor && | ||
102 | (!q->subdevice || q->subdevice == pci->subsystem_device)) | ||
103 | return q; | ||
104 | return NULL; | ||
105 | } | ||
106 | |||
107 | EXPORT_SYMBOL(snd_pci_quirk_lookup); | ||
108 | #endif | ||