]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-taskfile.c
Merge branch 'cpus4096' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux...
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-taskfile.c
index a4c2d91179b36647e53a362ddea4e2354b4e7daa..bf4fb9d8d176f2f91efa7a91a06d229f80f4d502 100644 (file)
@@ -152,7 +152,16 @@ static ide_startstop_t task_no_data_intr(ide_drive_t *drive)
 
        if (!custom)
                ide_end_drive_cmd(drive, stat, ide_read_error(drive));
-       else if (tf->command == ATA_CMD_SET_MULTI)
+       else if (tf->command == ATA_CMD_IDLEIMMEDIATE) {
+               hwif->tp_ops->tf_read(drive, task);
+               if (tf->lbal != 0xc4) {
+                       printk(KERN_ERR "%s: head unload failed!\n",
+                              drive->name);
+                       ide_tf_dump(drive->name, tf);
+               } else
+                       drive->dev_flags |= IDE_DFLAG_PARKED;
+               ide_end_drive_cmd(drive, stat, ide_read_error(drive));
+       } else if (tf->command == ATA_CMD_SET_MULTI)
                drive->mult_count = drive->mult_req;
 
        return ide_stopped;