Skip site navigation (1)Skip section navigation (2)
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>