diff options
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r-- | drivers/scsi/ide-scsi.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index bd2b56912472..c009f2351346 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -399,7 +399,6 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
399 | struct request *rq = pc->rq; | 399 | struct request *rq = pc->rq; |
400 | atapi_bcount_t bcount; | 400 | atapi_bcount_t bcount; |
401 | atapi_ireason_t ireason; | 401 | atapi_ireason_t ireason; |
402 | atapi_feature_t feature; | ||
403 | unsigned int temp; | 402 | unsigned int temp; |
404 | u8 stat; | 403 | u8 stat; |
405 | 404 | ||
@@ -424,7 +423,6 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
424 | (void) HWIF(drive)->ide_dma_end(drive); | 423 | (void) HWIF(drive)->ide_dma_end(drive); |
425 | } | 424 | } |
426 | 425 | ||
427 | feature.all = 0; | ||
428 | /* Clear the interrupt */ | 426 | /* Clear the interrupt */ |
429 | stat = drive->hwif->INB(IDE_STATUS_REG); | 427 | stat = drive->hwif->INB(IDE_STATUS_REG); |
430 | 428 | ||
@@ -572,18 +570,17 @@ static ide_startstop_t idescsi_issue_pc (ide_drive_t *drive, idescsi_pc_t *pc) | |||
572 | { | 570 | { |
573 | idescsi_scsi_t *scsi = drive_to_idescsi(drive); | 571 | idescsi_scsi_t *scsi = drive_to_idescsi(drive); |
574 | ide_hwif_t *hwif = drive->hwif; | 572 | ide_hwif_t *hwif = drive->hwif; |
575 | atapi_feature_t feature; | ||
576 | atapi_bcount_t bcount; | 573 | atapi_bcount_t bcount; |
574 | u8 dma = 0; | ||
577 | 575 | ||
578 | scsi->pc=pc; /* Set the current packet command */ | 576 | scsi->pc=pc; /* Set the current packet command */ |
579 | pc->actually_transferred=0; /* We haven't transferred any data yet */ | 577 | pc->actually_transferred=0; /* We haven't transferred any data yet */ |
580 | pc->current_position=pc->buffer; | 578 | pc->current_position=pc->buffer; |
581 | bcount.all = min(pc->request_transfer, 63 * 1024); /* Request to transfer the entire buffer at once */ | 579 | bcount.all = min(pc->request_transfer, 63 * 1024); /* Request to transfer the entire buffer at once */ |
582 | 580 | ||
583 | feature.all = 0; | ||
584 | if (drive->using_dma && !idescsi_map_sg(drive, pc)) { | 581 | if (drive->using_dma && !idescsi_map_sg(drive, pc)) { |
585 | hwif->sg_mapped = 1; | 582 | hwif->sg_mapped = 1; |
586 | feature.b.dma = !hwif->dma_setup(drive); | 583 | dma = !hwif->dma_setup(drive); |
587 | hwif->sg_mapped = 0; | 584 | hwif->sg_mapped = 0; |
588 | } | 585 | } |
589 | 586 | ||
@@ -591,11 +588,11 @@ static ide_startstop_t idescsi_issue_pc (ide_drive_t *drive, idescsi_pc_t *pc) | |||
591 | if (IDE_CONTROL_REG) | 588 | if (IDE_CONTROL_REG) |
592 | HWIF(drive)->OUTB(drive->ctl, IDE_CONTROL_REG); | 589 | HWIF(drive)->OUTB(drive->ctl, IDE_CONTROL_REG); |
593 | 590 | ||
594 | HWIF(drive)->OUTB(feature.all, IDE_FEATURE_REG); | 591 | hwif->OUTB(dma, IDE_FEATURE_REG); |
595 | HWIF(drive)->OUTB(bcount.b.high, IDE_BCOUNTH_REG); | 592 | HWIF(drive)->OUTB(bcount.b.high, IDE_BCOUNTH_REG); |
596 | HWIF(drive)->OUTB(bcount.b.low, IDE_BCOUNTL_REG); | 593 | HWIF(drive)->OUTB(bcount.b.low, IDE_BCOUNTL_REG); |
597 | 594 | ||
598 | if (feature.b.dma) | 595 | if (dma) |
599 | set_bit(PC_DMA_OK, &pc->flags); | 596 | set_bit(PC_DMA_OK, &pc->flags); |
600 | 597 | ||
601 | if (test_bit(IDESCSI_DRQ_INTERRUPT, &scsi->flags)) { | 598 | if (test_bit(IDESCSI_DRQ_INTERRUPT, &scsi->flags)) { |