diff options
-rw-r--r-- | drivers/ide/pci/cmd64x.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c index 0ad57c497b0d..519080ff4665 100644 --- a/drivers/ide/pci/cmd64x.c +++ b/drivers/ide/pci/cmd64x.c | |||
@@ -439,11 +439,8 @@ static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const cha | |||
439 | u8 mrdmode = 0; | 439 | u8 mrdmode = 0; |
440 | 440 | ||
441 | if (dev->device == PCI_DEVICE_ID_CMD_646) { | 441 | if (dev->device == PCI_DEVICE_ID_CMD_646) { |
442 | u8 rev = 0; | ||
443 | 442 | ||
444 | pci_read_config_byte(dev, PCI_REVISION_ID, &rev); | 443 | switch (dev->revision) { |
445 | |||
446 | switch (rev) { | ||
447 | case 0x07: | 444 | case 0x07: |
448 | case 0x05: | 445 | case 0x05: |
449 | printk("%s: UltraDMA capable\n", name); | 446 | printk("%s: UltraDMA capable\n", name); |
@@ -505,9 +502,6 @@ static u8 __devinit ata66_cmd64x(ide_hwif_t *hwif) | |||
505 | static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif) | 502 | static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif) |
506 | { | 503 | { |
507 | struct pci_dev *dev = hwif->pci_dev; | 504 | struct pci_dev *dev = hwif->pci_dev; |
508 | u8 rev = 0; | ||
509 | |||
510 | pci_read_config_byte(dev, PCI_REVISION_ID, &rev); | ||
511 | 505 | ||
512 | hwif->set_pio_mode = &cmd64x_set_pio_mode; | 506 | hwif->set_pio_mode = &cmd64x_set_pio_mode; |
513 | hwif->set_dma_mode = &cmd64x_set_dma_mode; | 507 | hwif->set_dma_mode = &cmd64x_set_dma_mode; |
@@ -529,7 +523,7 @@ static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif) | |||
529 | * | 523 | * |
530 | * So we only do UltraDMA on revision 0x05 and 0x07 chipsets. | 524 | * So we only do UltraDMA on revision 0x05 and 0x07 chipsets. |
531 | */ | 525 | */ |
532 | if (dev->device == PCI_DEVICE_ID_CMD_646 && rev < 5) | 526 | if (dev->device == PCI_DEVICE_ID_CMD_646 && dev->revision < 5) |
533 | hwif->ultra_mask = 0x00; | 527 | hwif->ultra_mask = 0x00; |
534 | 528 | ||
535 | if (hwif->cbl != ATA_CBL_PATA40_SHORT) | 529 | if (hwif->cbl != ATA_CBL_PATA40_SHORT) |
@@ -544,10 +538,10 @@ static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif) | |||
544 | break; | 538 | break; |
545 | case PCI_DEVICE_ID_CMD_646: | 539 | case PCI_DEVICE_ID_CMD_646: |
546 | hwif->chipset = ide_cmd646; | 540 | hwif->chipset = ide_cmd646; |
547 | if (rev == 0x01) { | 541 | if (dev->revision == 0x01) { |
548 | hwif->ide_dma_end = &cmd646_1_ide_dma_end; | 542 | hwif->ide_dma_end = &cmd646_1_ide_dma_end; |
549 | break; | 543 | break; |
550 | } else if (rev >= 0x03) | 544 | } else if (dev->revision >= 0x03) |
551 | goto alt_irq_bits; | 545 | goto alt_irq_bits; |
552 | /* fall thru */ | 546 | /* fall thru */ |
553 | default: | 547 | default: |