Date: Thu, 10 Aug 1995 11:00:16 -0600 From: nate@sneezy.sri.com (Nate Williams) To: bugs@FreeBSD.org Cc: micke@dynas.se Subject: Temporary Solution ( was Re: FreeBSD Sony CD-ROM driver buggy) Message-ID: <199508101700.LAA26347@rocky.sri.MT.net> In-Reply-To: <199508091830.MAA25456@trout.sri.MT.net> References: <199508091830.MAA25456@trout.sri.MT.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Williams writes: [ Sony CD driver problems ] Based on feedback from Mikael Hybsch <micke@ab.ausys.se>, the driver's author, I'm now able to read the CD w/out problems. An excerpt of email to me follows: > I think I know what the problem is. > > The real problem is in scd_doread() when I wait for the DATA_READY bit > to be set. > I first wait for DATA_READY and only after I got it > (or if there is a timeout) I wait for RESULT_READY to check for > any error condition. > > Now, if the data arrives AFTER the timeout (0.3 sec), the driver > will continue to check the result parameter. If in this case > there is no error condition (because the data has arrived, but late), > no data is ever read from the drive but the driver still > does a biodone(). > > A quick test to see if this is the problem is to increese the constant > RDELAY_WAITREAD to, for example, 2000. > > The real solution is to monitor both theese bits and only do > biodone() after the data is read and there is no error. I went for the quick fix and changed the constant to 2000, and my corruption went away. Until the real fix comes, should we modify the driver constant to 2000 to avoid the data corruption problems? Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508101700.LAA26347>