diff options
Diffstat (limited to 'drivers/ide/pci/cmd64x.c')
-rw-r--r-- | drivers/ide/pci/cmd64x.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c index 1e89dd6e5bbf..19633c5aba15 100644 --- a/drivers/ide/pci/cmd64x.c +++ b/drivers/ide/pci/cmd64x.c | |||
@@ -221,17 +221,18 @@ static u8 cmd64x_tune_pio (ide_drive_t *drive, u8 mode_wanted) | |||
221 | { | 221 | { |
222 | ide_hwif_t *hwif = HWIF(drive); | 222 | ide_hwif_t *hwif = HWIF(drive); |
223 | struct pci_dev *dev = hwif->pci_dev; | 223 | struct pci_dev *dev = hwif->pci_dev; |
224 | ide_pio_data_t pio; | 224 | unsigned int cycle_time; |
225 | u8 pio_mode, setup_count, arttim = 0; | 225 | u8 pio_mode, setup_count, arttim = 0; |
226 | static const u8 setup_values[] = {0x40, 0x40, 0x40, 0x80, 0, 0xc0}; | 226 | static const u8 setup_values[] = {0x40, 0x40, 0x40, 0x80, 0, 0xc0}; |
227 | static const u8 arttim_regs[4] = {ARTTIM0, ARTTIM1, ARTTIM23, ARTTIM23}; | 227 | static const u8 arttim_regs[4] = {ARTTIM0, ARTTIM1, ARTTIM23, ARTTIM23}; |
228 | pio_mode = ide_get_best_pio_mode(drive, mode_wanted, 5, &pio); | ||
229 | 228 | ||
230 | cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)%s\n", | 229 | pio_mode = ide_get_best_pio_mode(drive, mode_wanted, 5); |
231 | drive->name, mode_wanted, pio_mode, pio.cycle_time, | 230 | cycle_time = ide_pio_cycle_time(drive, pio_mode); |
232 | pio.overridden ? " (overriding vendor mode)" : ""); | ||
233 | 231 | ||
234 | program_cycle_times(drive, pio.cycle_time, | 232 | cmdprintk("%s: PIO mode wanted %d, selected %d (%d ns)\n", |
233 | drive->name, mode_wanted, pio_mode, cycle_time); | ||
234 | |||
235 | program_cycle_times(drive, cycle_time, | ||
235 | ide_pio_timings[pio_mode].active_time); | 236 | ide_pio_timings[pio_mode].active_time); |
236 | 237 | ||
237 | setup_count = quantize_timing(ide_pio_timings[pio_mode].setup_time, | 238 | setup_count = quantize_timing(ide_pio_timings[pio_mode].setup_time, |
@@ -618,40 +619,40 @@ static ide_pci_device_t cmd64x_chipsets[] __devinitdata = { | |||
618 | .init_setup = init_setup_cmd64x, | 619 | .init_setup = init_setup_cmd64x, |
619 | .init_chipset = init_chipset_cmd64x, | 620 | .init_chipset = init_chipset_cmd64x, |
620 | .init_hwif = init_hwif_cmd64x, | 621 | .init_hwif = init_hwif_cmd64x, |
621 | .channels = 2, | ||
622 | .autodma = AUTODMA, | 622 | .autodma = AUTODMA, |
623 | .enablebits = {{0x00,0x00,0x00}, {0x51,0x08,0x08}}, | 623 | .enablebits = {{0x00,0x00,0x00}, {0x51,0x08,0x08}}, |
624 | .bootable = ON_BOARD, | 624 | .bootable = ON_BOARD, |
625 | .pio_mask = ATA_PIO5, | ||
625 | .udma_mask = 0x00, /* no udma */ | 626 | .udma_mask = 0x00, /* no udma */ |
626 | },{ /* 1 */ | 627 | },{ /* 1 */ |
627 | .name = "CMD646", | 628 | .name = "CMD646", |
628 | .init_setup = init_setup_cmd646, | 629 | .init_setup = init_setup_cmd646, |
629 | .init_chipset = init_chipset_cmd64x, | 630 | .init_chipset = init_chipset_cmd64x, |
630 | .init_hwif = init_hwif_cmd64x, | 631 | .init_hwif = init_hwif_cmd64x, |
631 | .channels = 2, | ||
632 | .autodma = AUTODMA, | 632 | .autodma = AUTODMA, |
633 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, | 633 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, |
634 | .bootable = ON_BOARD, | 634 | .bootable = ON_BOARD, |
635 | .pio_mask = ATA_PIO5, | ||
635 | .udma_mask = 0x07, /* udma0-2 */ | 636 | .udma_mask = 0x07, /* udma0-2 */ |
636 | },{ /* 2 */ | 637 | },{ /* 2 */ |
637 | .name = "CMD648", | 638 | .name = "CMD648", |
638 | .init_setup = init_setup_cmd64x, | 639 | .init_setup = init_setup_cmd64x, |
639 | .init_chipset = init_chipset_cmd64x, | 640 | .init_chipset = init_chipset_cmd64x, |
640 | .init_hwif = init_hwif_cmd64x, | 641 | .init_hwif = init_hwif_cmd64x, |
641 | .channels = 2, | ||
642 | .autodma = AUTODMA, | 642 | .autodma = AUTODMA, |
643 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, | 643 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, |
644 | .bootable = ON_BOARD, | 644 | .bootable = ON_BOARD, |
645 | .pio_mask = ATA_PIO5, | ||
645 | .udma_mask = 0x1f, /* udma0-4 */ | 646 | .udma_mask = 0x1f, /* udma0-4 */ |
646 | },{ /* 3 */ | 647 | },{ /* 3 */ |
647 | .name = "CMD649", | 648 | .name = "CMD649", |
648 | .init_setup = init_setup_cmd64x, | 649 | .init_setup = init_setup_cmd64x, |
649 | .init_chipset = init_chipset_cmd64x, | 650 | .init_chipset = init_chipset_cmd64x, |
650 | .init_hwif = init_hwif_cmd64x, | 651 | .init_hwif = init_hwif_cmd64x, |
651 | .channels = 2, | ||
652 | .autodma = AUTODMA, | 652 | .autodma = AUTODMA, |
653 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, | 653 | .enablebits = {{0x51,0x04,0x04}, {0x51,0x08,0x08}}, |
654 | .bootable = ON_BOARD, | 654 | .bootable = ON_BOARD, |
655 | .pio_mask = ATA_PIO5, | ||
655 | .udma_mask = 0x3f, /* udma0-5 */ | 656 | .udma_mask = 0x3f, /* udma0-5 */ |
656 | } | 657 | } |
657 | }; | 658 | }; |