diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-15 15:21:48 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-15 15:21:48 -0400 |
commit | ed4af48fd660176680da905817f6e40d51436e4c (patch) | |
tree | 6d27fe51ce299b84de1cd7cc64eea3ee55660bef | |
parent | 9a410e79b552bacb4481f85618aa7333b7776ed7 (diff) |
ide: move IRQ unmasking out from ->tf_load method
Move IRQ unmasking out from ->tf_load method to its users.
There should be no functional changes caused by this patch
(SELECT_MASK() is NOP except for hpt366, icside and sgiioc4).
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r-- | drivers/ide/h8300/ide-h8300.c | 2 | ||||
-rw-r--r-- | drivers/ide/ide-io.c | 2 | ||||
-rw-r--r-- | drivers/ide/ide-iops.c | 5 | ||||
-rw-r--r-- | drivers/ide/ide-taskfile.c | 2 | ||||
-rw-r--r-- | drivers/ide/pci/scc_pata.c | 2 | ||||
-rw-r--r-- | include/linux/ide.h | 1 |
6 files changed, 6 insertions, 8 deletions
diff --git a/drivers/ide/h8300/ide-h8300.c b/drivers/ide/h8300/ide-h8300.c index ecf53bb0d2aa..d5afc28eaae7 100644 --- a/drivers/ide/h8300/ide-h8300.c +++ b/drivers/ide/h8300/ide-h8300.c | |||
@@ -52,8 +52,6 @@ static void h8300_tf_load(ide_drive_t *drive, ide_task_t *task) | |||
52 | if (task->tf_flags & IDE_TFLAG_FLAGGED) | 52 | if (task->tf_flags & IDE_TFLAG_FLAGGED) |
53 | HIHI = 0xFF; | 53 | HIHI = 0xFF; |
54 | 54 | ||
55 | ide_set_irq(drive, 1); | ||
56 | |||
57 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) | 55 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) |
58 | mm_outw((tf->hob_data << 8) | tf->data, io_ports->data_addr); | 56 | mm_outw((tf->hob_data << 8) | tf->data, io_ports->data_addr); |
59 | 57 | ||
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index c22a337ced4e..2083cc08b2ce 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
@@ -1579,6 +1579,8 @@ void ide_pktcmd_tf_load(ide_drive_t *drive, u32 tf_flags, u16 bcount, u8 dma) | |||
1579 | task.tf.lbah = (bcount >> 8) & 0xff; | 1579 | task.tf.lbah = (bcount >> 8) & 0xff; |
1580 | 1580 | ||
1581 | ide_tf_dump(drive->name, &task.tf); | 1581 | ide_tf_dump(drive->name, &task.tf); |
1582 | ide_set_irq(drive, 1); | ||
1583 | SELECT_MASK(drive, 0); | ||
1582 | drive->hwif->tf_load(drive, &task); | 1584 | drive->hwif->tf_load(drive, &task); |
1583 | } | 1585 | } |
1584 | 1586 | ||
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index 9f9916fe6c2f..491980aab866 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -95,7 +95,7 @@ void SELECT_DRIVE (ide_drive_t *drive) | |||
95 | hwif->OUTB(drive->select.all, hwif->io_ports.device_addr); | 95 | hwif->OUTB(drive->select.all, hwif->io_ports.device_addr); |
96 | } | 96 | } |
97 | 97 | ||
98 | static void SELECT_MASK(ide_drive_t *drive, int mask) | 98 | void SELECT_MASK(ide_drive_t *drive, int mask) |
99 | { | 99 | { |
100 | const struct ide_port_ops *port_ops = drive->hwif->port_ops; | 100 | const struct ide_port_ops *port_ops = drive->hwif->port_ops; |
101 | 101 | ||
@@ -120,9 +120,6 @@ static void ide_tf_load(ide_drive_t *drive, ide_task_t *task) | |||
120 | if (task->tf_flags & IDE_TFLAG_FLAGGED) | 120 | if (task->tf_flags & IDE_TFLAG_FLAGGED) |
121 | HIHI = 0xFF; | 121 | HIHI = 0xFF; |
122 | 122 | ||
123 | ide_set_irq(drive, 1); | ||
124 | SELECT_MASK(drive, 0); | ||
125 | |||
126 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) { | 123 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) { |
127 | u16 data = (tf->hob_data << 8) | tf->data; | 124 | u16 data = (tf->hob_data << 8) | tf->data; |
128 | 125 | ||
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index b6a1c4b51129..6a17ab54f801 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
@@ -109,6 +109,8 @@ ide_startstop_t do_rw_taskfile (ide_drive_t *drive, ide_task_t *task) | |||
109 | 109 | ||
110 | if ((task->tf_flags & IDE_TFLAG_DMA_PIO_FALLBACK) == 0) { | 110 | if ((task->tf_flags & IDE_TFLAG_DMA_PIO_FALLBACK) == 0) { |
111 | ide_tf_dump(drive->name, tf); | 111 | ide_tf_dump(drive->name, tf); |
112 | ide_set_irq(drive, 1); | ||
113 | SELECT_MASK(drive, 0); | ||
112 | hwif->tf_load(drive, task); | 114 | hwif->tf_load(drive, task); |
113 | } | 115 | } |
114 | 116 | ||
diff --git a/drivers/ide/pci/scc_pata.c b/drivers/ide/pci/scc_pata.c index 910fb00deb71..37e8cfcabb4b 100644 --- a/drivers/ide/pci/scc_pata.c +++ b/drivers/ide/pci/scc_pata.c | |||
@@ -662,8 +662,6 @@ static void scc_tf_load(ide_drive_t *drive, ide_task_t *task) | |||
662 | if (task->tf_flags & IDE_TFLAG_FLAGGED) | 662 | if (task->tf_flags & IDE_TFLAG_FLAGGED) |
663 | HIHI = 0xFF; | 663 | HIHI = 0xFF; |
664 | 664 | ||
665 | ide_set_irq(drive, 1); | ||
666 | |||
667 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) | 665 | if (task->tf_flags & IDE_TFLAG_OUT_DATA) |
668 | out_be32((void *)io_ports->data_addr, | 666 | out_be32((void *)io_ports->data_addr, |
669 | (tf->hob_data << 8) | tf->data); | 667 | (tf->hob_data << 8) | tf->data); |
diff --git a/include/linux/ide.h b/include/linux/ide.h index d4a910cdb907..56d0bc2dffee 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -973,6 +973,7 @@ typedef struct ide_task_s { | |||
973 | void ide_tf_dump(const char *, struct ide_taskfile *); | 973 | void ide_tf_dump(const char *, struct ide_taskfile *); |
974 | 974 | ||
975 | extern void SELECT_DRIVE(ide_drive_t *); | 975 | extern void SELECT_DRIVE(ide_drive_t *); |
976 | void SELECT_MASK(ide_drive_t *, int); | ||
976 | 977 | ||
977 | extern int drive_is_ready(ide_drive_t *); | 978 | extern int drive_is_ready(ide_drive_t *); |
978 | 979 | ||