aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-atapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-atapi.c')
-rw-r--r--drivers/ide/ide-atapi.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index 608c5bade929..fb27c94aeb0d 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -207,7 +207,7 @@ EXPORT_SYMBOL_GPL(ide_set_media_lock);
207ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc, 207ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
208 ide_handler_t *handler, unsigned int timeout, ide_expiry_t *expiry, 208 ide_handler_t *handler, unsigned int timeout, ide_expiry_t *expiry,
209 void (*update_buffers)(ide_drive_t *, struct ide_atapi_pc *), 209 void (*update_buffers)(ide_drive_t *, struct ide_atapi_pc *),
210 void (*retry_pc)(ide_drive_t *), void (*dsc_handle)(ide_drive_t *), 210 void (*retry_pc)(ide_drive_t *),
211 int (*io_buffers)(ide_drive_t *, struct ide_atapi_pc *, unsigned, int)) 211 int (*io_buffers)(ide_drive_t *, struct ide_atapi_pc *, unsigned, int))
212{ 212{
213 ide_hwif_t *hwif = drive->hwif; 213 ide_hwif_t *hwif = drive->hwif;
@@ -216,12 +216,12 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
216 xfer_func_t *xferfunc; 216 xfer_func_t *xferfunc;
217 unsigned int temp; 217 unsigned int temp;
218 u16 bcount; 218 u16 bcount;
219 u8 stat, ireason, scsi = drive->scsi; 219 u8 stat, ireason, scsi = drive->scsi, dsc = 0;
220 220
221 debug_log("Enter %s - interrupt handler\n", __func__); 221 debug_log("Enter %s - interrupt handler\n", __func__);
222 222
223 if (pc->flags & PC_FLAG_TIMEDOUT) { 223 if (pc->flags & PC_FLAG_TIMEDOUT) {
224 drive->pc_callback(drive); 224 drive->pc_callback(drive, 0);
225 return ide_stopped; 225 return ide_stopped;
226 } 226 }
227 227
@@ -283,14 +283,12 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
283 } 283 }
284cmd_finished: 284cmd_finished:
285 pc->error = 0; 285 pc->error = 0;
286 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && 286
287 (stat & ATA_DSC) == 0) { 287 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && (stat & ATA_DSC) == 0)
288 dsc_handle(drive); 288 dsc = 1;
289 return ide_stopped;
290 }
291 289
292 /* Command finished - Call the callback function */ 290 /* Command finished - Call the callback function */
293 drive->pc_callback(drive); 291 drive->pc_callback(drive, dsc);
294 292
295 return ide_stopped; 293 return ide_stopped;
296 } 294 }