diff options
Diffstat (limited to 'drivers/ide/pci/scc_pata.c')
-rw-r--r-- | drivers/ide/pci/scc_pata.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/ide/pci/scc_pata.c b/drivers/ide/pci/scc_pata.c index 910fb00deb71..1584ebb6a185 100644 --- a/drivers/ide/pci/scc_pata.c +++ b/drivers/ide/pci/scc_pata.c | |||
@@ -148,11 +148,8 @@ static void scc_ide_outb(u8 addr, unsigned long port) | |||
148 | out_be32((void*)port, addr); | 148 | out_be32((void*)port, addr); |
149 | } | 149 | } |
150 | 150 | ||
151 | static void | 151 | static void scc_ide_outbsync(ide_hwif_t *hwif, u8 addr, unsigned long port) |
152 | scc_ide_outbsync(ide_drive_t * drive, u8 addr, unsigned long port) | ||
153 | { | 152 | { |
154 | ide_hwif_t *hwif = HWIF(drive); | ||
155 | |||
156 | out_be32((void*)port, addr); | 153 | out_be32((void*)port, addr); |
157 | eieio(); | 154 | eieio(); |
158 | in_be32((void*)(hwif->dma_base + 0x01c)); | 155 | in_be32((void*)(hwif->dma_base + 0x01c)); |
@@ -662,8 +659,6 @@ static void scc_tf_load(ide_drive_t *drive, ide_task_t *task) | |||
662 | if (task->tf_flags & IDE_TFLAG_FLAGGED) | 659 | if (task->tf_flags & IDE_TFLAG_FLAGGED) |
663 | HIHI = 0xFF; | 660 | HIHI = 0xFF; |
664 | 661 | ||
665 | ide_set_irq(drive, 1); | ||
666 | |||
667 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) | 662 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) |
668 | out_be32((void *)io_ports->data_addr, | 663 | out_be32((void *)io_ports->data_addr, |
669 | (tf->hob_data << 8) | tf->data); | 664 | (tf->hob_data << 8) | tf->data); |
@@ -708,7 +703,7 @@ static void scc_tf_read(ide_drive_t *drive, ide_task_t *task) | |||
708 | } | 703 | } |
709 | 704 | ||
710 | /* be sure we're looking at the low order bits */ | 705 | /* be sure we're looking at the low order bits */ |
711 | scc_ide_outb(drive->ctl & ~0x80, io_ports->ctl_addr); | 706 | scc_ide_outb(ATA_DEVCTL_OBS & ~0x80, io_ports->ctl_addr); |
712 | 707 | ||
713 | if (task->tf_flags & IDE_TFLAG_IN_NSECT) | 708 | if (task->tf_flags & IDE_TFLAG_IN_NSECT) |
714 | tf->nsect = scc_ide_inb(io_ports->nsect_addr); | 709 | tf->nsect = scc_ide_inb(io_ports->nsect_addr); |
@@ -722,7 +717,7 @@ static void scc_tf_read(ide_drive_t *drive, ide_task_t *task) | |||
722 | tf->device = scc_ide_inb(io_ports->device_addr); | 717 | tf->device = scc_ide_inb(io_ports->device_addr); |
723 | 718 | ||
724 | if (task->tf_flags & IDE_TFLAG_LBA48) { | 719 | if (task->tf_flags & IDE_TFLAG_LBA48) { |
725 | scc_ide_outb(drive->ctl | 0x80, io_ports->ctl_addr); | 720 | scc_ide_outb(ATA_DEVCTL_OBS | 0x80, io_ports->ctl_addr); |
726 | 721 | ||
727 | if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE) | 722 | if (task->tf_flags & IDE_TFLAG_IN_HOB_FEATURE) |
728 | tf->hob_feature = scc_ide_inb(io_ports->feature_addr); | 723 | tf->hob_feature = scc_ide_inb(io_ports->feature_addr); |
@@ -795,7 +790,6 @@ static void __devinit init_mmio_iops_scc(ide_hwif_t *hwif) | |||
795 | 790 | ||
796 | hwif->dma_base = dma_base; | 791 | hwif->dma_base = dma_base; |
797 | hwif->config_data = ports->ctl; | 792 | hwif->config_data = ports->ctl; |
798 | hwif->mmio = 1; | ||
799 | } | 793 | } |
800 | 794 | ||
801 | /** | 795 | /** |