Skip to contentSkip to conversation

ide: remove IDE_TFLAG_NO_SELECT_MASK taskfile flag

PATCH In review Bartlomiej Zolnierkiewicz 2 participants 3 messages May 7, 2008 – May 8, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 4/6 ide: remove IDE_TFLAG_NO_SELECT_MASK taskfile flag

Always call SELECT_MASK(..., 0) in ide_tf_load() (needs to be done to match ide_set_irq(..., 1)) and then remove IDE_TFLAG_NO_SELECT_MASK taskfile flag.

This change should only affect hpt366 and icside host drivers since ->maskproc(..., 0) for sgiioc4 is equivalent to ide_set_irq(..., 1).

---
 drivers/ide/ide-cd.c     |    4 ++--
 drivers/ide/ide-disk.c   |    3 +--
 drivers/ide/ide-floppy.c |    3 +--
 drivers/ide/ide-iops.c   |    4 +---
 drivers/ide/ide-tape.c   |    3 +--
 drivers/scsi/ide-scsi.c  |    2 +-
 include/linux/ide.h      |    1 -
 7 files changed, 7 insertions(+), 13 deletions(-)
drivers/ide/ide-cd.c +2 -2
Index: b/drivers/ide/ide-cd.c
===================================================================
@@ -530,8 +530,8 @@ static ide_startstop_t cdrom_start_packe
 		info->dma = !hwif->dma_ops->dma_setup(drive);
 
 	/* set up the controller registers */
-	ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL |
-			   IDE_TFLAG_NO_SELECT_MASK, xferlen, info->dma);
+	ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL,
+			   xferlen, info->dma);
 
 	if (info->cd_flags & IDE_CD_FLAG_DRQ_INTERRUPT) {
 		/* waiting for CDB interrupt, not DMA yet. */
drivers/ide/ide-disk.c +1 -2
Index: b/drivers/ide/ide-disk.c
===================================================================
@@ -198,8 +198,7 @@ static ide_startstop_t __ide_do_rw_disk(
 	}
 
 	memset(&task, 0, sizeof(task));
-	task.tf_flags = IDE_TFLAG_NO_SELECT_MASK;  /* FIXME? */
-	task.tf_flags |= (IDE_TFLAG_TF | IDE_TFLAG_DEVICE);
+	task.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
 
 	if (drive->select.b.lba) {
 		if (lba48) {
drivers/ide/ide-floppy.c +1 -2
Index: b/drivers/ide/ide-floppy.c
===================================================================
@@ -667,8 +667,7 @@ static ide_startstop_t idefloppy_issue_p
 	if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
 		dma = !hwif->dma_ops->dma_setup(drive);
 
-	ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK |
-			   IDE_TFLAG_OUT_DEVICE, bcount, dma);
+	ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma);
 
 	if (dma) {
 		/* Begin DMA, if necessary */
drivers/ide/ide-iops.c +1 -3
Index: b/drivers/ide/ide-iops.c
===================================================================
@@ -121,9 +121,7 @@ static void ide_tf_load(ide_drive_t *dri
 		HIHI = 0xFF;
 
 	ide_set_irq(drive, 1);
-
-	if ((task->tf_flags & IDE_TFLAG_NO_SELECT_MASK) == 0)
-		SELECT_MASK(drive, 0);
+	SELECT_MASK(drive, 0);
 
 	if (task->tf_flags & IDE_TFLAG_OUT_DATA) {
 		u16 data = (tf->hob_data << 8) | tf->data;
drivers/ide/ide-tape.c +1 -2
Index: b/drivers/ide/ide-tape.c
===================================================================
@@ -1046,8 +1046,7 @@ static ide_startstop_t idetape_issue_pc(
 	if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
 		dma_ok = !hwif->dma_ops->dma_setup(drive);
 
-	ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK |
-			   IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
+	ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
 
 	if (dma_ok)
 		/* Will begin DMA later */
drivers/scsi/ide-scsi.c +1 -1
Index: b/drivers/scsi/ide-scsi.c
===================================================================
@@ -564,7 +564,7 @@ static ide_startstop_t idescsi_issue_pc(
 		hwif->sg_mapped = 0;
 	}
 
-	ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK, bcount, dma);
+	ide_pktcmd_tf_load(drive, 0, bcount, dma);
 
 	if (dma)
 		pc->flags |= PC_FLAG_DMA_OK;
include/linux/ide.h +0 -1
Index: b/include/linux/ide.h
===================================================================
@@ -854,7 +854,6 @@ extern void ide_end_drive_cmd(ide_drive_
 
 enum {
 	IDE_TFLAG_LBA48			= (1 << 0),
-	IDE_TFLAG_NO_SELECT_MASK	= (1 << 1),
 	IDE_TFLAG_FLAGGED		= (1 << 2),
 	IDE_TFLAG_OUT_DATA		= (1 << 3),
 	IDE_TFLAG_OUT_HOB_FEATURE	= (1 << 4),
#1 lore raw
Quoted 6 lines · Bartlomiej Zolnierkiewicz

Always call SELECT_MASK(..., 0) in ide_tf_load() (needs to be done to match ide_set_irq(..., 1)) and then remove IDE_TFLAG_NO_SELECT_MASK taskfile flag.

This change should only affect hpt366 and icside host drivers since ->maskproc(..., 0) for sgiioc4 is equivalent to ide_set_irq(..., 1).

Provided the two channels on icside are serialised (so IDE doesn't try to enable IRQs on both channels at the same time) it shouldn't be a problem.

However, since I don't use this driver anymore (using the PATA version instead) I don't feel it's right for me to ack this change.

Signature · 3 lines
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
#2 lore raw
Quoted 11 lines · Russell King
Quoted 6 lines · Bartlomiej Zolnierkiewicz

Always call SELECT_MASK(..., 0) in ide_tf_load() (needs to be done to match ide_set_irq(..., 1)) and then remove IDE_TFLAG_NO_SELECT_MASK taskfile flag.

This change should only affect hpt366 and icside host drivers since ->maskproc(..., 0) for sgiioc4 is equivalent to ide_set_irq(..., 1).

Provided the two channels on icside are serialised (so IDE doesn't try to enable IRQs on both channels at the same time) it shouldn't be a problem.

Yep, they are serialized.

Quoted 2 lines

However, since I don't use this driver anymore (using the PATA version instead) I don't feel it's right for me to ack this change.

Thanks for taking a look anyway.

Bart