From d6119d778438e43c4b0890f47730d5cd71e4e834 Mon Sep 17 00:00:00 2001 From: Sergei Shtylyov Date: Sun, 11 Mar 2012 22:29:02 +0300 Subject: [PATCH] --- yaml --- r: 294053 b: refs/heads/master c: 8fcfa7bd1b77514cfdce77751c980460535f56b4 h: refs/heads/master i: 294051: b621c4c406af8dc83f2230145751db122140497b v: v3 --- [refs] | 2 +- trunk/drivers/ata/pata_cmd64x.c | 28 +++++++++++++++++----------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index f6c0148d5fa2..e5ed97045154 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d01159dffa15e3a734e43cf58c5d9f04c4106d83 +refs/heads/master: 8fcfa7bd1b77514cfdce77751c980460535f56b4 diff --git a/trunk/drivers/ata/pata_cmd64x.c b/trunk/drivers/ata/pata_cmd64x.c index e1fb39a74ce1..028638c7c1d9 100644 --- a/trunk/drivers/ata/pata_cmd64x.c +++ b/trunk/drivers/ata/pata_cmd64x.c @@ -32,7 +32,7 @@ #include #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);