ide: always use ->OUTBSYNC method for executing commands
PATCH 1/3 ide: always use ->OUTBSYNC method for executing commands
Always use ->OUTBSYNC method for executing commands so the posting is done if needed (this affects only pmac and scc_pata host drivers at the moment).
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-floppy.c | 3 ++- drivers/ide/ide-io.c | 3 ++- drivers/ide/ide-iops.c | 2 +- drivers/ide/ide-probe.c | 6 +++--- drivers/ide/ide-tape.c | 3 ++- drivers/scsi/ide-scsi.c | 6 ++++-- 6 files changed, 14 insertions(+), 9 deletions(-)
drivers/ide/ide-floppy.c +2 -1
@@ -696,7 +696,8 @@ static ide_startstop_t idefloppy_issue_preturn ide_started; }else {/* Issue the packet command */ - hwif->OUTB (WIN_PACKETCMD , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_PACKETCMD , + hwif->io_ports.command_addr);return (*pkt_xfer_routine) (drive); } }
drivers/ide/ide-io.c +2 -1
@@ -502,7 +502,8 @@ static ide_startstop_t ide_atapi_error(iif (ide_read_status (drive) & (BUSY_STAT |DRQ_STAT ))/* force an abort */ - hwif->OUTB (WIN_IDLEIMMEDIATE , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_IDLEIMMEDIATE , + hwif->io_ports.command_addr);if (rq->errors >=ERROR_MAX ) {ide_kill_rq (drive, rq);
drivers/ide/ide-iops.c +1 -1
@@ -593,7 +593,7 @@ int ide_driveid_update(ide_drive_t *drivSELECT_MASK (drive,1 );ide_set_irq (drive,1 );msleep (50 ); - hwif->OUTB (WIN_IDENTIFY , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_IDENTIFY , hwif->io_ports.command_addr); timeout = jiffies +WAIT_WORSTCASE ; do { if (time_after(jiffies, timeout)) {
drivers/ide/ide-probe.c +3 -3
@@ -295,7 +295,7 @@ static int actual_try_to_identify (ide_d hwif->OUTB (0 , io_ports->feature_addr);/* ask drive for ID */ - hwif->OUTB (cmd, io_ports->command_addr); + hwif->OUTBSYNC (drive, cmd, io_ports->command_addr); timeout = ((cmd ==WIN_IDENTIFY ) ?WAIT_WORSTCASE :WAIT_PIDENTIFY ) /2 ; timeout += jiffies;
@@ -482,7 +482,7 @@ static int do_probe (ide_drive_t *drive,msleep (50 ); hwif->OUTB (drive->select.all, io_ports->device_addr);msleep (50 ); - hwif->OUTB (WIN_SRST , io_ports->command_addr); + hwif->OUTBSYNC (drive,WIN_SRST , io_ports->command_addr); (void )ide_busy_sleep (hwif); rc =try_to_identify (drive, cmd); }
@@ -518,7 +518,7 @@ static void enable_nest (ide_drive_t *drprintk ("%s: enabling %s -- " , hwif->name, drive->id->model);SELECT_DRIVE (drive);msleep (50 ); - hwif->OUTB (EXABYTE_ENABLE_NEST , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,EXABYTE_ENABLE_NEST , hwif->io_ports.command_addr);if (ide_busy_sleep (hwif)) {printk (KERN_CONT "failed (timeout)\n" );
drivers/ide/ide-tape.c +2 -1
@@ -1056,7 +1056,8 @@ static ide_startstop_t idetape_issue_pc( IDETAPE_WAIT_CMD, NULL);return ide_started; }else { - hwif->OUTB (WIN_PACKETCMD , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_PACKETCMD , + hwif->io_ports.command_addr);return idetape_transfer_pc (drive); } }
drivers/scsi/ide-scsi.c +4 -2
@@ -256,7 +256,8 @@ idescsi_atapi_error(ide_drive_t *drive,if (ide_read_status (drive) & (BUSY_STAT |DRQ_STAT ))/* force an abort */ - hwif->OUTB (WIN_IDLEIMMEDIATE , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_IDLEIMMEDIATE , + hwif->io_ports.command_addr); rq->errors++;
@@ -573,7 +574,8 @@ static ide_startstop_t idescsi_issue_pc(return ide_started; }else {/* Issue the packet command */ - hwif->OUTB (WIN_PACKETCMD , hwif->io_ports.command_addr); + hwif->OUTBSYNC (drive,WIN_PACKETCMD , + hwif->io_ports.command_addr);return idescsi_transfer_pc (drive); } }