Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Sep 2003 05:41:00 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Pav Lucistnik <pav@oook.cz>
Cc:        freebsd-current@freebsd.org
Subject:   Re: ATAng regression: cdcontrol close not working
Message-ID:  <20030907052713.E11673@delplex.bde.org>
In-Reply-To: <1062856314.734.8.camel@hood.oook.cz>
References:  <1062856314.734.8.camel@hood.oook.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 6 Sep 2003, Pav Lucistnik wrote:

> after recent ATAng changes, cdcontrol close stopped working
> with my CD-ROM drive. It used to close the tray. It works with -f
> /dev/cd0 but not with /dev/acd0. cdcontrol eject still works fine.

I use the following fix:

%%%
Index: atapi-cd.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/atapi-cd.c,v
retrieving revision 1.142
diff -u -2 -r1.142 atapi-cd.c
--- atapi-cd.c	5 Sep 2003 10:40:16 -0000	1.142
+++ atapi-cd.c	6 Sep 2003 17:16:16 -0000
@@ -1870,7 +1913,7 @@
     int error;

-    if ((error = acd_start_stop(cdp, 0)) == EBUSY) {
+    if ((error = acd_start_stop(cdp, 0)) == EBUSY || close) {
 	if (!close)
-	    return 0;
+	    return EBUSY;
 	if ((error = acd_start_stop(cdp, 3)))
 	    return error;
@@ -1882,6 +1925,4 @@
     if (error)
 	return error;
-    if (close)
-	return 0;
     acd_prevent_allow(cdp, 0);
     cdp->flags &= ~F_LOCKED;
%%%

acd_eject() doesn't seem to have been changed by ATAng, so I don't see how
close it could have ever worked, but I seem to remember it working.

> Relevant dmesg parts:
> ...
> cd0 at ata1 bus 0 target 0 lun 0
> cd0: <TEAC CD-532E-B 1.0A> Removable CD-ROM SCSI-0 device
> cd0: 16.000MB/s transfers
> cd0: cd present [357072 x 2048 byte records]
>
> I do have atapicam in my kernel.

Close works on cd0 and cd1 for me without the above patch.  The code for
eject and close in scsi_cd.c is easier to understand.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030907052713.E11673>