aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide-cd.c4
-rw-r--r--drivers/ide/ide-disk.c3
-rw-r--r--drivers/ide/ide-floppy.c3
-rw-r--r--drivers/ide/ide-iops.c4
-rw-r--r--drivers/ide/ide-tape.c3
-rw-r--r--drivers/scsi/ide-scsi.c2
-rw-r--r--include/linux/ide.h1
7 files changed, 7 insertions, 13 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index ac542ffffa49..0fbc2d8d0d53 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -530,8 +530,8 @@ static ide_startstop_t cdrom_start_packet_command(ide_drive_t *drive,
530 info->dma = !hwif->dma_ops->dma_setup(drive); 530 info->dma = !hwif->dma_ops->dma_setup(drive);
531 531
532 /* set up the controller registers */ 532 /* set up the controller registers */
533 ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL | 533 ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL,
534 IDE_TFLAG_NO_SELECT_MASK, xferlen, info->dma); 534 xferlen, info->dma);
535 535
536 if (info->cd_flags & IDE_CD_FLAG_DRQ_INTERRUPT) { 536 if (info->cd_flags & IDE_CD_FLAG_DRQ_INTERRUPT) {
537 /* waiting for CDB interrupt, not DMA yet. */ 537 /* waiting for CDB interrupt, not DMA yet. */
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index c5f22ef8ed24..5f49a4ae9dd8 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -198,8 +198,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
198 } 198 }
199 199
200 memset(&task, 0, sizeof(task)); 200 memset(&task, 0, sizeof(task));
201 task.tf_flags = IDE_TFLAG_NO_SELECT_MASK; /* FIXME? */ 201 task.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
202 task.tf_flags |= (IDE_TFLAG_TF | IDE_TFLAG_DEVICE);
203 202
204 if (drive->select.b.lba) { 203 if (drive->select.b.lba) {
205 if (lba48) { 204 if (lba48) {
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 9161cd92a842..1852008d9ee4 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -667,8 +667,7 @@ static ide_startstop_t idefloppy_issue_pc(ide_drive_t *drive,
667 if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma) 667 if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
668 dma = !hwif->dma_ops->dma_setup(drive); 668 dma = !hwif->dma_ops->dma_setup(drive);
669 669
670 ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK | 670 ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma);
671 IDE_TFLAG_OUT_DEVICE, bcount, dma);
672 671
673 if (dma) { 672 if (dma) {
674 /* Begin DMA, if necessary */ 673 /* Begin DMA, if necessary */
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index 2de4c8f581eb..9f9916fe6c2f 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -121,9 +121,7 @@ static void ide_tf_load(ide_drive_t *drive, ide_task_t *task)
121 HIHI = 0xFF; 121 HIHI = 0xFF;
122 122
123 ide_set_irq(drive, 1); 123 ide_set_irq(drive, 1);
124 124 SELECT_MASK(drive, 0);
125 if ((task->tf_flags & IDE_TFLAG_NO_SELECT_MASK) == 0)
126 SELECT_MASK(drive, 0);
127 125
128 if (task->tf_flags & IDE_TFLAG_OUT_DATA) { 126 if (task->tf_flags & IDE_TFLAG_OUT_DATA) {
129 u16 data = (tf->hob_data << 8) | tf->data; 127 u16 data = (tf->hob_data << 8) | tf->data;
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index a5f0b774527b..cc7991c7c252 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -1046,8 +1046,7 @@ static ide_startstop_t idetape_issue_pc(ide_drive_t *drive,
1046 if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma) 1046 if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
1047 dma_ok = !hwif->dma_ops->dma_setup(drive); 1047 dma_ok = !hwif->dma_ops->dma_setup(drive);
1048 1048
1049 ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK | 1049 ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
1050 IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
1051 1050
1052 if (dma_ok) 1051 if (dma_ok)
1053 /* Will begin DMA later */ 1052 /* Will begin DMA later */
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index da261806d62a..3222aa589dbf 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -564,7 +564,7 @@ static ide_startstop_t idescsi_issue_pc(ide_drive_t *drive,
564 hwif->sg_mapped = 0; 564 hwif->sg_mapped = 0;
565 } 565 }
566 566
567 ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK, bcount, dma); 567 ide_pktcmd_tf_load(drive, 0, bcount, dma);
568 568
569 if (dma) 569 if (dma)
570 pc->flags |= PC_FLAG_DMA_OK; 570 pc->flags |= PC_FLAG_DMA_OK;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 0fa1812d0438..d4a910cdb907 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -869,7 +869,6 @@ extern void ide_end_drive_cmd(ide_drive_t *, u8, u8);
869 869
870enum { 870enum {
871 IDE_TFLAG_LBA48 = (1 << 0), 871 IDE_TFLAG_LBA48 = (1 << 0),
872 IDE_TFLAG_NO_SELECT_MASK = (1 << 1),
873 IDE_TFLAG_FLAGGED = (1 << 2), 872 IDE_TFLAG_FLAGGED = (1 << 2),
874 IDE_TFLAG_OUT_DATA = (1 << 3), 873 IDE_TFLAG_OUT_DATA = (1 << 3),
875 IDE_TFLAG_OUT_HOB_FEATURE = (1 << 4), 874 IDE_TFLAG_OUT_HOB_FEATURE = (1 << 4),