diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 95d39c36acea2e39e6677bd996cb2c20e16e10db..c59b40710fbd2f42867328eb1261768ad80fa32b 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -576,6 +576,10 @@ static int via_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
 			u8 rev = isa->revision;
 			pci_dev_put(isa);
 
+			if ((id->device == 0x0415 || id->device == 0x3164) &&
+			    (config->id != id->device))
+				continue;
+
 			if (rev >= config->rev_min && rev <= config->rev_max)
 				break;
 		}