diff options
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r-- | drivers/scsi/ide-scsi.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index 93c3fc20aa59..32553639aded 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -258,8 +258,7 @@ idescsi_atapi_error(ide_drive_t *drive, struct request *rq, u8 stat, u8 err) | |||
258 | 258 | ||
259 | if (ide_read_status(drive) & (BUSY_STAT | DRQ_STAT)) | 259 | if (ide_read_status(drive) & (BUSY_STAT | DRQ_STAT)) |
260 | /* force an abort */ | 260 | /* force an abort */ |
261 | hwif->OUTB(WIN_IDLEIMMEDIATE, | 261 | hwif->OUTB(WIN_IDLEIMMEDIATE, hwif->io_ports.command_addr); |
262 | hwif->io_ports[IDE_COMMAND_OFFSET]); | ||
263 | 262 | ||
264 | rq->errors++; | 263 | rq->errors++; |
265 | 264 | ||
@@ -393,7 +392,7 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
393 | printk ("ide-scsi: %s: DMA complete\n", drive->name); | 392 | printk ("ide-scsi: %s: DMA complete\n", drive->name); |
394 | #endif /* IDESCSI_DEBUG_LOG */ | 393 | #endif /* IDESCSI_DEBUG_LOG */ |
395 | pc->xferred = pc->req_xfer; | 394 | pc->xferred = pc->req_xfer; |
396 | (void) HWIF(drive)->ide_dma_end(drive); | 395 | (void)hwif->dma_ops->dma_end(drive); |
397 | } | 396 | } |
398 | 397 | ||
399 | /* Clear the interrupt */ | 398 | /* Clear the interrupt */ |
@@ -410,9 +409,9 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
410 | idescsi_end_request (drive, 1, 0); | 409 | idescsi_end_request (drive, 1, 0); |
411 | return ide_stopped; | 410 | return ide_stopped; |
412 | } | 411 | } |
413 | bcount = (hwif->INB(hwif->io_ports[IDE_BCOUNTH_OFFSET]) << 8) | | 412 | bcount = (hwif->INB(hwif->io_ports.lbah_addr) << 8) | |
414 | hwif->INB(hwif->io_ports[IDE_BCOUNTL_OFFSET]); | 413 | hwif->INB(hwif->io_ports.lbam_addr); |
415 | ireason = hwif->INB(hwif->io_ports[IDE_IREASON_OFFSET]); | 414 | ireason = hwif->INB(hwif->io_ports.nsect_addr); |
416 | 415 | ||
417 | if (ireason & CD) { | 416 | if (ireason & CD) { |
418 | printk(KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n"); | 417 | printk(KERN_ERR "ide-scsi: CoD != 0 in idescsi_pc_intr\n"); |
@@ -485,7 +484,7 @@ static ide_startstop_t idescsi_transfer_pc(ide_drive_t *drive) | |||
485 | "initiated yet DRQ isn't asserted\n"); | 484 | "initiated yet DRQ isn't asserted\n"); |
486 | return startstop; | 485 | return startstop; |
487 | } | 486 | } |
488 | ireason = hwif->INB(hwif->io_ports[IDE_IREASON_OFFSET]); | 487 | ireason = hwif->INB(hwif->io_ports.nsect_addr); |
489 | if ((ireason & CD) == 0 || (ireason & IO)) { | 488 | if ((ireason & CD) == 0 || (ireason & IO)) { |
490 | printk(KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while " | 489 | printk(KERN_ERR "ide-scsi: (IO,CoD) != (0,1) while " |
491 | "issuing a packet command\n"); | 490 | "issuing a packet command\n"); |
@@ -498,7 +497,7 @@ static ide_startstop_t idescsi_transfer_pc(ide_drive_t *drive) | |||
498 | drive->hwif->atapi_output_bytes(drive, scsi->pc->c, 12); | 497 | drive->hwif->atapi_output_bytes(drive, scsi->pc->c, 12); |
499 | if (pc->flags & PC_FLAG_DMA_OK) { | 498 | if (pc->flags & PC_FLAG_DMA_OK) { |
500 | pc->flags |= PC_FLAG_DMA_IN_PROGRESS; | 499 | pc->flags |= PC_FLAG_DMA_IN_PROGRESS; |
501 | hwif->dma_start(drive); | 500 | hwif->dma_ops->dma_start(drive); |
502 | } | 501 | } |
503 | return ide_started; | 502 | return ide_started; |
504 | } | 503 | } |
@@ -560,7 +559,7 @@ static ide_startstop_t idescsi_issue_pc(ide_drive_t *drive, | |||
560 | 559 | ||
561 | if (drive->using_dma && !idescsi_map_sg(drive, pc)) { | 560 | if (drive->using_dma && !idescsi_map_sg(drive, pc)) { |
562 | hwif->sg_mapped = 1; | 561 | hwif->sg_mapped = 1; |
563 | dma = !hwif->dma_setup(drive); | 562 | dma = !hwif->dma_ops->dma_setup(drive); |
564 | hwif->sg_mapped = 0; | 563 | hwif->sg_mapped = 0; |
565 | } | 564 | } |
566 | 565 | ||
@@ -575,7 +574,7 @@ static ide_startstop_t idescsi_issue_pc(ide_drive_t *drive, | |||
575 | return ide_started; | 574 | return ide_started; |
576 | } else { | 575 | } else { |
577 | /* Issue the packet command */ | 576 | /* Issue the packet command */ |
578 | hwif->OUTB(WIN_PACKETCMD, hwif->io_ports[IDE_COMMAND_OFFSET]); | 577 | hwif->OUTB(WIN_PACKETCMD, hwif->io_ports.command_addr); |
579 | return idescsi_transfer_pc(drive); | 578 | return idescsi_transfer_pc(drive); |
580 | } | 579 | } |
581 | } | 580 | } |