DragonFly commits List (threaded) for 2003-12
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/dev/disk/ata ata-all.c ata-disk.c
dillon 2003/12/28 19:42:43 PST
DragonFly src repository
Modified files:
sys/dev/disk/ata ata-all.c ata-disk.c
Log:
FreeBSD-5.x removed the 'read interrupt arrived early' check code, for
undocumented reasons. As far as I can tell, only the ATA_S_READY bit needs
to be set when a read interrupt arrives for a PIO read operation so reduce
the test from ATA_S_READY|ATA_S_DSC|ATA_S_DRQ to just ATA_S_READY.
Change the ATA RESET timing. Instead of polling up to 310000 times in 100uS
intervals poll 3100 times in 10000uS intervals. Note that 5.x polls 310
times in 100ms intervals, which is silly (an unnecessarily long polling
delay).
Add a mandatory 50ms delay after all BUSY bits have been released. Some
ATA devices release BUSY before they are ready to accept commands. Note
that the ATA code waits 100ms after releasing RESET, before checking BUSY,
which is probably overkill, but this does not cover the mandatory delay
that must occur after BUSY is observed to have been released.
(This patch primarily removes bogus 'read interrupt arrived early' warnings
on the console for things like CF card IDE adapters and other badly designed
IDE devices).
Revision Changes Path
1.10 +8 -3 src/sys/dev/disk/ata/ata-all.c
1.9 +4 -3 src/sys/dev/disk/ata/ata-disk.c
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/ata-all.c.diff?r1=1.9&r2=1.10&f=h
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/ata-disk.c.diff?r1=1.8&r2=1.9&f=h
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]