aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r--drivers/ide/ide-io.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index e37b09c81e3a..5b213dcaa5e6 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -939,8 +939,7 @@ static void ide_check_pm_state(ide_drive_t *drive, struct request *rq)
939 if (rc) 939 if (rc)
940 printk(KERN_WARNING "%s: bus not ready on wakeup\n", drive->name); 940 printk(KERN_WARNING "%s: bus not ready on wakeup\n", drive->name);
941 SELECT_DRIVE(drive); 941 SELECT_DRIVE(drive);
942 if (IDE_CONTROL_REG) 942 ide_set_irq(drive, 1);
943 HWIF(drive)->OUTB(drive->ctl, IDE_CONTROL_REG);
944 rc = ide_wait_not_busy(HWIF(drive), 100000); 943 rc = ide_wait_not_busy(HWIF(drive), 100000);
945 if (rc) 944 if (rc)
946 printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name); 945 printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name);
@@ -1213,15 +1212,13 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq)
1213 } 1212 }
1214 again: 1213 again:
1215 hwif = HWIF(drive); 1214 hwif = HWIF(drive);
1216 if (hwgroup->hwif->sharing_irq && 1215 if (hwgroup->hwif->sharing_irq && hwif != hwgroup->hwif) {
1217 hwif != hwgroup->hwif &&
1218 hwif->io_ports[IDE_CONTROL_OFFSET]) {
1219 /* 1216 /*
1220 * set nIEN for previous hwif, drives in the 1217 * set nIEN for previous hwif, drives in the
1221 * quirk_list may not like intr setups/cleanups 1218 * quirk_list may not like intr setups/cleanups
1222 */ 1219 */
1223 if (drive->quirk_list != 1) 1220 if (drive->quirk_list != 1)
1224 hwif->OUTB(drive->ctl | 2, IDE_CONTROL_REG); 1221 ide_set_irq(drive, 0);
1225 } 1222 }
1226 hwgroup->hwif = hwif; 1223 hwgroup->hwif = hwif;
1227 hwgroup->drive = drive; 1224 hwgroup->drive = drive;