All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch] fix cdrom autoclose
@ 2005-01-05 21:57 Stas Sergeev
  0 siblings, 0 replies; only message in thread
From: Stas Sergeev @ 2005-01-05 21:57 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux kernel, Alexander Kern

[-- Attachment #1: Type: text/plain, Size: 403 bytes --]

Hi Andrew.

The attached patch fixes the CD-ROM
autoclose. It is broken in recent
kernels for CD-ROMs that do not properly
report that the tray is opened.
Now on such a drives the kernel will do
one close attempt and check for the disc
again. This is how it used to work in the
past.

Can this please be applied?

Acked-by: Alexander Kern <alex.kern@gmx.de>
Signed-off-by: Stas Sergeev <stsp@aknet.ru>


[-- Attachment #2: cd_clo1.diff --]
[-- Type: text/x-patch, Size: 842 bytes --]

--- linux/drivers/cdrom/cdrom.c	2004-12-28 14:49:56.000000000 +0300
+++ linux/drivers/cdrom/cdrom.c	2004-12-28 14:55:09.228038640 +0300
@@ -1076,6 +1076,8 @@
 			}
 			cdinfo(CD_OPEN, "the tray is now closed.\n"); 
 		}
+		/* the door should be closed now, check for the disc */
+		ret = cdo->drive_status(cdi, CDSL_CURRENT);
 		if (ret!=CDS_DISC_OK) {
 			ret = -ENOMEDIUM;
 			goto clean_up_and_return;
--- linux/drivers/ide/ide-cd.c	2004-12-28 09:15:40.000000000 +0300
+++ linux/drivers/ide/ide-cd.c	2004-12-28 14:46:44.119826760 +0300
@@ -2744,9 +2744,9 @@
 	 */
 	if (sense.sense_key == NOT_READY) {
 		if (sense.asc == 0x3a) {
-			if (sense.ascq == 0 || sense.ascq == 1)
+			if (sense.ascq == 1)
 				return CDS_NO_DISC;
-			else if (sense.ascq == 2)
+			else if (sense.ascq == 0 || sense.ascq == 2)
 				return CDS_TRAY_OPEN;
 		}
 	}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-01-05 21:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-05 21:57 [patch] fix cdrom autoclose Stas Sergeev

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.