Date: Tue, 2 Dec 1997 12:13:54 -0600 (CST) From: "Daniel M. Eischen" <deischen@iworks.interworks.org> To: freebsd-hackers@freebsd.org, freebsd-mobile@freebsd.org Subject: Fix for slow reacting ATAPI CD-ROM Message-ID: <199712021813.MAA10260@iworks.InterWorks.org>
next in thread | raw e-mail | index | archive | help
Please forgive the cross-post, wasn't sure where this belongs. I have a new ChemUSA Chembook and everything works fine except for the CD-ROM drive, which times out waiting for the command phase in atapi_wait_cmd(). I was able to get it to work by increasing the wait count to 3000. /* Wait for DRQ from 50 usec to 3 msec for slow devices */ int cnt = ata->intrcmd ? 10000 : ata->slow ? 3000 : 50; int ireason = 0, phase = 0; + cnt = 3000; + /* Wait for command phase. */ for (; cnt>0; cnt-=10) { ireason = inb (ata->port + AR_IREASON); Obviously, this drive isn't detected as a slow device (I can post the boot messages later if needed). What I wanted to do was to add a config flag for setting this, but it doesn't look like that is sent down to the atapi driver. Question: Can we change atapi_attach() to accept a 4th argument and use this to pass config flags from wdattach() in wd.c? Is there another method I should be using to handle atapi device quirks? Thanks, Dan Eischen deischen@iworks.InterWorks.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712021813.MAA10260>