summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-queue.c
Commit message (Collapse)AuthorAgeFilesLines
* Dont use the bio_taskqueue if we are in timeout.sos2004-02-171-2/+2
| | | | | Use taskqueue_thread rather than taskqueue_swi (maybe we should have a taskqueue_ata).
* Commit simple workarounf for the "LiteOn" hang on boot problem.sos2004-02-061-0/+1
| | | | | | This allows the system to boot so I can get the world out of my mailbox and get some work done to figure out what this mess is all about.
* Be more robust in the probe. We dont want to get into a loop withsos2004-01-301-13/+28
| | | | | reinitting when we try to identify devices. If they dont interrupt on identify we retry once. If this fails we simply ignore that device.
* Use the biotask functionality in GEOM to put finished requests onsos2004-01-281-14/+20
| | | | | | | instead of taskqueue_swi. This shaves from 1 to 10% of the overhead. Overhaul the locking once more, there was a few possible races that are now closed.
* Fix breakage on timeout/retries. The bug cause a sema to be leaked sosos2004-01-191-21/+23
| | | | that the calling process would newer wakeup.
* Use UMA instead of plain malloc for getting ATA request storage.sos2004-01-141-27/+6
| | | | | | | This gives +10% performance on simple tests, so definitly worth it. A few percent more could be had by not using M_ZERO'd alloc's, but we then need to clear fields all over the place to be safe, and that was deemed not worth the trouble (and it makes life dangerous).
* Always return ENOMEM if ata_request_alloc fails so GEOM can dtrt.sos2004-01-121-4/+4
|
* Overhaul of the timeout/reinit framework. This should clear up mostsos2004-01-111-90/+154
| | | | | | | | | | | | of the leftovers from the old version that really doesn't work anymore. Add a reset function for host-end of the ATA channel. This is needed for the SiI3112 in order to whack it back to reality if a device locks up the SATA interface (thereby preventing that we can reset the device). The result is that ATA now recovers from the timeouts that happens with the SiI3112A and more or less all disks based on old PATA electronics with a Marvell PATA->SATA converter. This includes lots of the popular SATA dongles and the WDC Raptor disks..
* Fix compilation on 64bit archs.sos2003-12-161-1/+1
|
* Print the LBA on failing R/W commands.sos2003-12-151-5/+7
|
* If just gcc could make up its mind...sos2003-10-201-1/+1
|
* Only announce ECC errors when its only that.sos2003-10-201-2/+2
|
* Reintroduce the "recovered from lost interrupt" code, but in a newsos2003-10-141-6/+7
| | | | | | (hopefully) panic safe way. Why the interrupts are lost is still a mystery, to me at least.
* Avoid potential race on ATA_R_DONE.sos2003-10-121-2/+3
|
* Improve timeout handling and reporting.sos2003-10-071-6/+22
|
* Always check the sensekey field on ATAPI returnssos2003-09-191-1/+4
| | | | Add INQUIRY to cmd2str.
* Properly handle error code returns from the lower levels ATAPI code.sos2003-09-181-14/+14
|
* Make sure to call start when retrying.sos2003-08-281-1/+2
|
* Unify prototypes.sos2003-08-251-3/+3
| | | | Cosmetics.
* Use __FBSDID().obrien2003-08-241-2/+3
| | | | Also some minor style cleanups.
* This is a major rework of the ATA driver (ATAng)sos2003-08-241-0/+471
Restructure the way ATA/ATAPI commands are processed, use a common ata_request structure for both. This centralises the way requests are handled so locking is much easier to handle. The driver is now layered much more cleanly to seperate the lowlevel HW access so it can be tailored to specific controllers without touching the upper layers. This is needed to support some of the newer semi-intelligent ATA controllers showing up. The top level drivers (disk, ATAPI devices) are more or less still the same with just corrections to use the new interface. Pull ATA out from under Gaint now that locking can be done in a sane way. Add support for a the National Geode SC1100. Thanks to Soekris engineering for sponsoring a Soekris 4801 to make this support. Fixed alot of small bugs in the chipset code for various chips now we are around in that corner anyways.
OpenPOWER on IntegriCloud