diff options
author | Ondrej Zary <linux@rainbow-software.org> | 2015-11-17 19:24:18 +0100 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2015-11-25 22:08:49 -0500 |
commit | b1e850630b746e347f80cb3f70bdaa791c10b4f6 (patch) | |
tree | 48723dc0bc5d528b4d2c8cf70f6a60e4a6555c83 | |
parent | bdd5ac4065dbc2bb1478ae0c9205a651487c7432 (diff) |
atp870u: Improve unsupported chip detection
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Reviewed-by: Hannes Reinicke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r-- | drivers/scsi/atp870u.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c index d0119f173195..128613e88dfb 100644 --- a/drivers/scsi/atp870u.c +++ b/drivers/scsi/atp870u.c @@ -1252,6 +1252,11 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent) unsigned char setupdata[2][16]; int err; + if (ent->device == PCI_DEVICE_ID_ARTOP_AEC7610 && pdev->revision < 2) { + dev_err(&pdev->dev, "ATP850S chips (AEC6710L/F cards) are not supported.\n"); + return -ENODEV; + } + err = pci_enable_device(pdev); if (err) goto fail; @@ -1273,19 +1278,10 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent) atpdev->pdev = pdev; pci_set_drvdata(pdev, atpdev); - /* - * It's probably easier to weed out some revisions like - * this than via the PCI device table - */ - if (ent->device == PCI_DEVICE_ID_ARTOP_AEC7610) { - atpdev->chip_ver = pdev->revision; - if (atpdev->chip_ver < 2) { - err = -ENODEV; - goto unregister; - } - } - switch (ent->device) { + case PCI_DEVICE_ID_ARTOP_AEC7610: + atpdev->chip_ver = pdev->revision; + break; case PCI_DEVICE_ID_ARTOP_AEC7612UW: case PCI_DEVICE_ID_ARTOP_AEC7612SUW: case ATP880_DEVID1: |