|
@@ -446,21 +446,33 @@ static inline int __snd_bug_on(int cond)
|
|
struct snd_pci_quirk {
|
|
struct snd_pci_quirk {
|
|
unsigned short subvendor; /* PCI subvendor ID */
|
|
unsigned short subvendor; /* PCI subvendor ID */
|
|
unsigned short subdevice; /* PCI subdevice ID */
|
|
unsigned short subdevice; /* PCI subdevice ID */
|
|
|
|
+ unsigned short subdevice_mask; /* bitmask to match */
|
|
int value; /* value */
|
|
int value; /* value */
|
|
#ifdef CONFIG_SND_DEBUG_VERBOSE
|
|
#ifdef CONFIG_SND_DEBUG_VERBOSE
|
|
const char *name; /* name of the device (optional) */
|
|
const char *name; /* name of the device (optional) */
|
|
#endif
|
|
#endif
|
|
};
|
|
};
|
|
|
|
|
|
-#define _SND_PCI_QUIRK_ID(vend,dev) \
|
|
|
|
- .subvendor = (vend), .subdevice = (dev)
|
|
|
|
|
|
+#define _SND_PCI_QUIRK_ID_MASK(vend, mask, dev) \
|
|
|
|
+ .subvendor = (vend), .subdevice = (dev), .subdevice_mask = (mask)
|
|
|
|
+#define _SND_PCI_QUIRK_ID(vend, dev) \
|
|
|
|
+ _SND_PCI_QUIRK_ID_MASK(vend, 0xffff, dev)
|
|
#define SND_PCI_QUIRK_ID(vend,dev) {_SND_PCI_QUIRK_ID(vend, dev)}
|
|
#define SND_PCI_QUIRK_ID(vend,dev) {_SND_PCI_QUIRK_ID(vend, dev)}
|
|
#ifdef CONFIG_SND_DEBUG_VERBOSE
|
|
#ifdef CONFIG_SND_DEBUG_VERBOSE
|
|
#define SND_PCI_QUIRK(vend,dev,xname,val) \
|
|
#define SND_PCI_QUIRK(vend,dev,xname,val) \
|
|
{_SND_PCI_QUIRK_ID(vend, dev), .value = (val), .name = (xname)}
|
|
{_SND_PCI_QUIRK_ID(vend, dev), .value = (val), .name = (xname)}
|
|
|
|
+#define SND_PCI_QUIRK_VENDOR(vend, xname, val) \
|
|
|
|
+ {_SND_PCI_QUIRK_ID_MASK(vend, 0, 0), .value = (val), .name = (xname)}
|
|
|
|
+#define SND_PCI_QUIRK_MASK(vend, mask, dev, xname, val) \
|
|
|
|
+ {_SND_PCI_QUIRK_ID_MASK(vend, mask, dev), \
|
|
|
|
+ .value = (val), .name = (xname)}
|
|
#else
|
|
#else
|
|
#define SND_PCI_QUIRK(vend,dev,xname,val) \
|
|
#define SND_PCI_QUIRK(vend,dev,xname,val) \
|
|
{_SND_PCI_QUIRK_ID(vend, dev), .value = (val)}
|
|
{_SND_PCI_QUIRK_ID(vend, dev), .value = (val)}
|
|
|
|
+#define SND_PCI_QUIRK_MASK(vend, mask, dev, xname, val) \
|
|
|
|
+ {_SND_PCI_QUIRK_ID_MASK(vend, mask, dev), .value = (val)}
|
|
|
|
+#define SND_PCI_QUIRK_VENDOR(vend, xname, val) \
|
|
|
|
+ {_SND_PCI_QUIRK_ID_MASK(vend, 0, 0), .value = (val)}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
const struct snd_pci_quirk *
|
|
const struct snd_pci_quirk *
|