diff options
-rw-r--r-- | drivers/mtd/nand/cafe_nand.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c index cff969d05d4a..0b3f840b6cbe 100644 --- a/drivers/mtd/nand/cafe_nand.c +++ b/drivers/mtd/nand/cafe_nand.c | |||
@@ -623,6 +623,11 @@ static int __devinit cafe_nand_probe(struct pci_dev *pdev, | |||
623 | uint32_t ctrl; | 623 | uint32_t ctrl; |
624 | int err = 0; | 624 | int err = 0; |
625 | 625 | ||
626 | /* Very old versions shared the same PCI ident for all three | ||
627 | functions on the chip. Verify the class too... */ | ||
628 | if ((pdev->class >> 8) != PCI_CLASS_MEMORY_FLASH) | ||
629 | return -ENODEV; | ||
630 | |||
626 | err = pci_enable_device(pdev); | 631 | err = pci_enable_device(pdev); |
627 | if (err) | 632 | if (err) |
628 | return err; | 633 | return err; |
@@ -816,7 +821,8 @@ static void __devexit cafe_nand_remove(struct pci_dev *pdev) | |||
816 | } | 821 | } |
817 | 822 | ||
818 | static struct pci_device_id cafe_nand_tbl[] = { | 823 | static struct pci_device_id cafe_nand_tbl[] = { |
819 | { 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MEMORY_FLASH << 8, 0xFFFF0 } | 824 | { 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID }, |
825 | { } | ||
820 | }; | 826 | }; |
821 | 827 | ||
822 | MODULE_DEVICE_TABLE(pci, cafe_nand_tbl); | 828 | MODULE_DEVICE_TABLE(pci, cafe_nand_tbl); |