diff options
Diffstat (limited to 'drivers/scsi/sr_ioctl.c')
-rw-r--r-- | drivers/scsi/sr_ioctl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c index cbb38c5197fa..3cd8ffbad577 100644 --- a/drivers/scsi/sr_ioctl.c +++ b/drivers/scsi/sr_ioctl.c | |||
@@ -325,6 +325,15 @@ int sr_drive_status(struct cdrom_device_info *cdi, int slot) | |||
325 | } | 325 | } |
326 | 326 | ||
327 | /* | 327 | /* |
328 | * SK/ASC/ASCQ of 2/4/2 means "initialization required" | ||
329 | * Using CD_TRAY_OPEN results in an START_STOP_UNIT to close | ||
330 | * the tray, which resolves the initialization requirement. | ||
331 | */ | ||
332 | if (scsi_sense_valid(&sshdr) && sshdr.sense_key == NOT_READY | ||
333 | && sshdr.asc == 0x04 && sshdr.ascq == 0x02) | ||
334 | return CDS_TRAY_OPEN; | ||
335 | |||
336 | /* | ||
328 | * 0x04 is format in progress .. but there must be a disc present! | 337 | * 0x04 is format in progress .. but there must be a disc present! |
329 | */ | 338 | */ |
330 | if (sshdr.sense_key == NOT_READY && sshdr.asc == 0x04) | 339 | if (sshdr.sense_key == NOT_READY && sshdr.asc == 0x04) |