summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-11-24 15:34:06 +0100
committerJaroslav Kysela <perex@suse.cz>2007-02-09 09:01:48 +0100
commitd9ea472c743ccd7344055cb118bc210befbd8007 (patch)
tree144815385e7c37c36ac79e5235919828120a64e7 /include
parent048b945077bdc7e8dff5d5810ff2a0ced3590ca9 (diff)
downloadlinux-d9ea472c743ccd7344055cb118bc210befbd8007.tar.gz
linux-d9ea472c743ccd7344055cb118bc210befbd8007.tar.bz2
linux-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 'include')
-rw-r--r--include/sound/core.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/sound/core.h b/include/sound/core.h
index 506aa9f1e20f..3c493ad620d1 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -427,4 +427,29 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...)
#endif
#endif
+/* PCI quirk list helper */
+struct snd_pci_quirk {
+ unsigned short subvendor; /* PCI subvendor ID */
+ unsigned short subdevice; /* PCI subdevice ID */
+ int value; /* value */
+#ifdef CONFIG_SND_DEBUG_DETECT
+ const char *name; /* name of the device (optional) */
+#endif
+};
+
+#define _SND_PCI_QUIRK_ID(vend,dev) \
+ .subvendor = (vend), .subdevice = (dev)
+#define SND_PCI_QUIRK_ID(vend,dev) {_SND_PCI_QUIRK_ID(vend, dev)}
+#ifdef CONFIG_SND_DEBUG_DETECT
+#define SND_PCI_QUIRK(vend,dev,xname,val) \
+ {_SND_PCI_QUIRK_ID(vend, dev), .value = (val), .name = (xname)}
+#else
+#define SND_PCI_QUIRK(vend,dev,xname,val) \
+ {_SND_PCI_QUIRK_ID(vend, dev), .value = (val)}
+#endif
+
+const struct snd_pci_quirk *
+snd_pci_quirk_lookup(struct pci_dev *pci, const struct snd_pci_quirk *list);
+
+
#endif /* __SOUND_CORE_H */