ide: move IRQ unmasking out from ->tf_load method
PATCH 5/6 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 <[email protected]>
--- drivers/ide/h8300/ide-h8300.c | 2 -- drivers/ide/ide-io.c | 2 ++ drivers/ide/ide-iops.c | 5 +---- drivers/ide/ide-taskfile.c | 2 ++ drivers/ide/pci/scc_pata.c | 2 -- include/linux/ide.h | 1 + 6 files changed, 6 insertions(+), 8 deletions(-)
drivers/ide/h8300/ide-h8300.c +0 -2
@@ -52,8 +52,6 @@ static void h8300_tf_load(ide_drive_t *dif (task->tf_flags &IDE_TFLAG_FLAGGED )HIHI =0xFF ; -ide_set_irq (drive,1 ); -if (task->tf_flags &IDE_TFLAG_OUT_DATA )mm_outw ((tf->hob_data <<8 ) | tf->data, io_ports->data_addr);
drivers/ide/ide-io.c +2 -0
@@ -1576,6 +1576,8 @@ void ide_pktcmd_tf_load(ide_drive_t *dri task.tf.lbah = (bcount >>8 ) &0xff ;ide_tf_dump (drive->name, &task.tf); +ide_set_irq (drive,1 ); +SELECT_MASK (drive,0 ); drive->hwif->tf_load (drive, &task); }
drivers/ide/ide-iops.c +1 -4
@@ -95,7 +95,7 @@ void SELECT_DRIVE (ide_drive_t *drive) hwif->OUTB (drive->select.all, hwif->io_ports.device_addr); } -static void SELECT_MASK (ide_drive_t *drive,int mask) +void SELECT_MASK (ide_drive_t *drive,int mask) {const struct ide_port_ops *port_ops = drive->hwif->port_ops;
@@ -120,9 +120,6 @@ static void ide_tf_load(ide_drive_t *driif (task->tf_flags &IDE_TFLAG_FLAGGED )HIHI =0xFF ; -ide_set_irq (drive,1 ); -SELECT_MASK (drive,0 ); -if (task->tf_flags &IDE_TFLAG_OUT_DATA ) {u16 data = (tf->hob_data <<8 ) | tf->data;
drivers/ide/ide-taskfile.c +2 -0
@@ -109,6 +109,8 @@ ide_startstop_t do_rw_taskfile (ide_drivif ((task->tf_flags &IDE_TFLAG_DMA_PIO_FALLBACK ) ==0 ) {ide_tf_dump (drive->name, tf); +ide_set_irq (drive,1 ); +SELECT_MASK (drive,0 ); hwif->tf_load (drive, task); }
drivers/ide/pci/scc_pata.c +0 -2
@@ -662,8 +662,6 @@ static void scc_tf_load(ide_drive_t *driif (task->tf_flags &IDE_TFLAG_FLAGGED )HIHI =0xFF ; -ide_set_irq (drive,1 ); -if (task->tf_flags &IDE_TFLAG_OUT_DATA )out_be32 ((void *)io_ports->data_addr, (tf->hob_data <<8 ) | tf->data);
include/linux/ide.h +1 -0
@@ -958,6 +958,7 @@ typedef struct ide_task_s {void ide_tf_dump (const char *,struct ide_taskfile *);extern void SELECT_DRIVE (ide_drive_t *); +void SELECT_MASK (ide_drive_t *,int );extern int drive_is_ready (ide_drive_t *);