summaryrefslogtreecommitdiff
path: root/drivers/ata/pata_cmd64x.c
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2012-03-11 22:29:02 +0300
committerJeff Garzik <jgarzik@redhat.com>2012-03-13 16:41:31 -0400
commit8fcfa7bd1b77514cfdce77751c980460535f56b4 (patch)
tree1d301e23c7e8859c8e369b4f1120d202bcd7fec2 /drivers/ata/pata_cmd64x.c
parentd01159dffa15e3a734e43cf58c5d9f04c4106d83 (diff)
pata_cmd64x: turn string of *if* statements into *switch*
Convert string of the *if* statements all checking 'pdev->revision' into more natural *switch* statement. While at it, somewhat clarify the comments there... Increment the driver version, accounting for the patches that neglected to do this in the past. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_cmd64x.c')
-rw-r--r--drivers/ata/pata_cmd64x.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/drivers/ata/pata_cmd64x.c b/drivers/ata/pata_cmd64x.c
index e1fb39a74ce1..028638c7c1d9 100644
--- a/drivers/ata/pata_cmd64x.c
+++ b/drivers/ata/pata_cmd64x.c
@@ -32,7 +32,7 @@
#include <linux/libata.h>
#define DRV_NAME "pata_cmd64x"
-#define DRV_VERSION "0.2.5"
+#define DRV_VERSION "0.2.15"
/*
* CMD64x specific registers definition.
@@ -368,21 +368,27 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
if (id->driver_data == 0) /* 643 */
ata_pci_bmdma_clear_simplex(pdev);
- if (pdev->device == PCI_DEVICE_ID_CMD_646) {
- /* Does UDMA work ? */
- if (pdev->revision > 4) {
+ if (pdev->device == PCI_DEVICE_ID_CMD_646)
+ switch (pdev->revision) {
+ /* UDMA works since rev 5 */
+ default:
ppi[0] = &cmd_info[2];
ppi[1] = &cmd_info[2];
- }
- /* Early rev with other problems ? */
- else if (pdev->revision == 1) {
+ break;
+ case 3:
+ case 4:
+ break;
+ /* Rev 1 with other problems? */
+ case 1:
ppi[0] = &cmd_info[3];
ppi[1] = &cmd_info[3];
- }
- /* revs 1,2 have no CNTRL_CH0 */
- if (pdev->revision < 3)
+ /* FALL THRU */
+ /* Early revs have no CNTRL_CH0 */
+ case 2:
+ case 0:
cntrl_ch0_ok = 0;
- }
+ break;
+ }
cmd64x_fixup(pdev);