|
@@ -79,19 +79,21 @@ static void vortex_fix_agp_bridge(struct pci_dev *via)
|
|
|
|
|
|
static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix)
|
|
|
{
|
|
|
- struct pci_dev *via;
|
|
|
+ struct pci_dev *via = NULL;
|
|
|
|
|
|
/* autodetect if workarounds are required */
|
|
|
if (fix == 255) {
|
|
|
/* VIA KT133 */
|
|
|
- via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8365_1, NULL);
|
|
|
+ via = pci_get_device(PCI_VENDOR_ID_VIA,
|
|
|
+ PCI_DEVICE_ID_VIA_8365_1, NULL);
|
|
|
/* VIA Apollo */
|
|
|
if (via == NULL) {
|
|
|
- via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C598_1, NULL);
|
|
|
- }
|
|
|
- /* AMD Irongate */
|
|
|
- if (via == NULL) {
|
|
|
- via = pci_find_device(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_7007, NULL);
|
|
|
+ via = pci_get_device(PCI_VENDOR_ID_VIA,
|
|
|
+ PCI_DEVICE_ID_VIA_82C598_1, NULL);
|
|
|
+ /* AMD Irongate */
|
|
|
+ if (via == NULL)
|
|
|
+ via = pci_get_device(PCI_VENDOR_ID_AMD,
|
|
|
+ PCI_DEVICE_ID_AMD_FE_GATE_7007, NULL);
|
|
|
}
|
|
|
if (via) {
|
|
|
printk(KERN_INFO CARD_NAME ": Activating latency workaround...\n");
|
|
@@ -101,13 +103,17 @@ static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix)
|
|
|
} else {
|
|
|
if (fix & 0x1)
|
|
|
vortex_fix_latency(vortex);
|
|
|
- if ((fix & 0x2) && (via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8365_1, NULL)))
|
|
|
+ if ((fix & 0x2) && (via = pci_get_device(PCI_VENDOR_ID_VIA,
|
|
|
+ PCI_DEVICE_ID_VIA_8365_1, NULL)))
|
|
|
vortex_fix_agp_bridge(via);
|
|
|
- if ((fix & 0x4) && (via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C598_1, NULL)))
|
|
|
+ if ((fix & 0x4) && (via = pci_get_device(PCI_VENDOR_ID_VIA,
|
|
|
+ PCI_DEVICE_ID_VIA_82C598_1, NULL)))
|
|
|
vortex_fix_agp_bridge(via);
|
|
|
- if ((fix & 0x8) && (via = pci_find_device(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_7007, NULL)))
|
|
|
+ if ((fix & 0x8) && (via = pci_get_device(PCI_VENDOR_ID_AMD,
|
|
|
+ PCI_DEVICE_ID_AMD_FE_GATE_7007, NULL)))
|
|
|
vortex_fix_agp_bridge(via);
|
|
|
}
|
|
|
+ pci_dev_put(via);
|
|
|
}
|
|
|
|
|
|
// component-destructor
|