Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Aug 2004 18:43:28 -0700
From:      Brian Rogers <burpmaster@truffula.net>
To:        =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@DeepCore.dk>
Cc:        freebsd-current@freebsd.org
Subject:   Re: ATAPI_RESET hang fix
Message-ID:  <412BEEC0.2030408@truffula.net>
In-Reply-To: <412AF51B.8010801@DeepCore.dk>
References:  <412AD147.7050502@truffula.net> <412AF51B.8010801@DeepCore.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Søren Schmidt wrote:

> Brian Rogers wrote:
>
>> I was getting the hang on start after the "ATAPI_RESET time = x" 
>> message.  I stuck in a diagnostic printf before the ATAPI_RESET, and 
>> that actually fixed the hang.  So I replaced it with a DELAY(50), and 
>> that also avoids the hang.
>>
>> I guess some ATAPI devices don't like being reset right after being 
>> queried.  (Or there is a bug with handling that in FreeBSD)  Patch is 
>> attached.
>
> Hmm, you could be on to something, but instead of using a fixed delay 
> I'd rather (re)introduce the wait for ready before selecting the 
> device in ata_command. Could you please try the following patch and 
> let me know if that fixes the problem as well ?

It worked on the first try, but after that I couldn't reproduce it with 
a DVD in the drive, or with the drive empty, so I think that was a 
fluke.  I tried about 5 times.

I noticed this morning that my patch doesn't work when a DVD is in the 
drive.  The drive must need more time in that case.



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