summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
Commit message (Collapse)AuthorAgeFilesLines
* Change the disk(9) API in order to make device removal more robust.phk2004-02-186-51/+58
| | | | | | | | | | | | | | | | | | | | | | | | Previously the "struct disk" were owned by the device driver and this gave us problems when the device disappared and the users of that device were not immediately disappearing. Now the struct disk is allocate with a new call, disk_alloc() and owned by geom_disk and just abandonned by the device driver when disk_create() is called. Unfortunately, this results in a ton of "s/\./->/" changes to device drivers. Since I'm doing the sweep anyway, a couple of other API improvements have been carried out at the same time: The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to DISKFLAG_NEEDSGIANT A version number have been added to disk_create() so that we can detect, report and ignore binary drivers with old ABI in the future. Manual page update to follow shortly.
* 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).
* (atapi_cb): Reenable automatic retrieve of sense data on error, makingthomas2004-02-111-14/+21
| | | | | | | it asynchronous to avoid incorrect use of ata_atapicmd within an ATAPI callback. Tested by: harti
* 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.
* Move the enabling of interrupt back to where it was some time ago.sos2004-02-021-4/+3
| | | | This apparently was what broke the boot with some devices (liteon).
* Fix support for the Promise TX4 on amd64.sos2004-02-022-1/+2
| | | | | Somehow the bridge on there shows up with another PCI id than it does on x86, no idea why...
* Be more robust in the probe. We dont want to get into a loop withsos2004-01-302-24/+38
| | | | | reinitting when we try to identify devices. If they dont interrupt on identify we retry once. If this fails we simply ignore that device.
* Cleanups/cosmetics.sos2004-01-293-9/+8
|
* Fix for those lost interrupts on probe on lots of controller types.sos2004-01-281-6/+6
| | | | Note to self, just because an idea is good, it doesn't apply everywhere.
* Use the biotask functionality in GEOM to put finished requests onsos2004-01-287-32/+36
| | | | | | | 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 in PIO multisector support.sos2004-01-231-1/+0
|
* Update the support for the VIA 8237 southbridge.sos2004-01-202-3/+4
|
* Fix breakage on timeout/retries. The bug cause a sema to be leaked sosos2004-01-194-24/+27
| | | | that the calling process would newer wakeup.
* Fixed a memory leak.ru2004-01-181-1/+3
|
* Fix botch in last commit.sos2004-01-181-2/+2
|
* Add missing free's.sos2004-01-181-0/+4
|
* Add support for the Silicon Image 3114 4 channel SATA controller.sos2004-01-172-10/+18
|
* Use UMA instead of plain malloc for getting ATA request storage.sos2004-01-1416-36/+32
| | | | | | | 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).
* Fix potential cable detection problem on older CMD chips.sos2004-01-141-7/+9
|
* Fix ata_getparam to accept the fact that some crappy devices can pose assos2004-01-131-10/+12
| | | | both master and slave at the same time confusing the probe code.
* Always return ENOMEM if ata_request_alloc fails so GEOM can dtrt.sos2004-01-124-9/+9
|
* #include sema.h is now required.sos2004-01-121-0/+1
|
* Overhaul of the timeout/reinit framework. This should clear up mostsos2004-01-1115-220/+358
| | | | | | | | | | | | 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..
* Use the saved params for LBA-CHS conversion. Fixes PC98 bug.sos2004-01-081-4/+3
|
* Try to simplify the SiS probe. If SiS stays with the current schema forsos2003-12-251-22/+9
| | | | | new nothbridges we should even find the southbridge and be able to use it (if its one we know that is).
* Fix the register timings for AMD/VIA/nVidia chipsets.sos2003-12-181-3/+3
|
* Add support for the SiS 661 chipset (using SiS 963 south).sos2003-12-182-0/+2
|
* Fix compilation on 64bit archs.sos2003-12-161-1/+1
|
* Print the LBA on failing R/W commands.sos2003-12-151-5/+7
|
* Finetune last commit, we need to take care of empty channels.sos2003-12-101-3/+7
|
* Add back the national support, this was removed by accident earlier.sos2003-12-091-0/+4
|
* More errata fixing for the SiI3112A disaster chip:sos2003-12-081-1/+3
| | | | | | | | | | Serialize access to the SATA channels, the chip messes up if both channels are used at the same time. The SiI3112 hereby takes the price as the most crappy SATA chip in existance by a significant amount. My advise to our userbase is to avoid this chip like the plague...
* Fix more problems with the Silicon Image 3112A:sos2003-12-081-1/+17
| | | | | | | | | | | | | | | | | | Setup decent transfer mode defaults as some BIOS's seem to put in things that it *knows* doesn't work. (Note to BIOS writers: stop doing that nonsense, we will get things working with your crappy HW anyways, and then recommend users to buy someone else's products that "just works", thankyou.. ) Limit the device transfer mode to ATA100/UDMA5 on generic SATA. Since we dont know if the user is using a pure SATA device or an old PATA drive with a SATA converter dongle, we need to limit the speed used here to cover up the problems with Marvell ATA-SATA bridges used in lots of SATA products. This workaround is enabled for all detectable SATA controllers as they seem to have semilar problems here. One notable exception is all the Promise pdc2037x chips which just always work (cudos to Promise!).
* Try a little harder to catch when fixate finishes.sos2003-12-071-2/+4
| | | | | On the <QSI CD-RW/DVD-ROM SBW-242> that failed causing burncd to wait forever...
* Fix a potential problem with atapi-cam where an incorrect flag is passedscottl2003-12-051-1/+1
| | | | | | into the ata queueing layer. Approved by: re
* Fix for the missing slave problem.sos2003-12-031-1/+1
| | | | Approved by: re@
* Fix modesetting on ISA only systems.sos2003-12-031-1/+1
| | | | Approved by: re@
* Fix ata-card.sos2003-11-302-38/+28
| | | | | | | | | The altio resource magic no longer worked probably due to other changes in the kernel. Redo that part so it also fits better into ATAng. Fix detach so it doesn't panic the system when a pccard device is yanked. Approved by: re@
* Workaround for errata on early versions of the sii3112.sos2003-11-284-5/+13
| | | | Approved by: re@
* Correct the former patch, I accidently committed the wrong version.sos2003-11-241-2/+2
| | | | Approved by: re@
* Fix panic on certain failed configs.sos2003-11-241-4/+11
| | | | Approved by: re@
* Be less noisy when GEOM probes around during boot if drive containssos2003-11-241-0/+5
| | | | | | invalid media (ie empty CD/DVD) Approved by: re@
* Fix support for the cmd646 chip.sos2003-11-211-2/+27
| | | | | Spotted by: tmm reviewed by: re@
* Add support for the SiS964 ATA/SATA southbridge.sos2003-11-182-9/+19
| | | | | | This could not have been done without the support from kuriyama. Approved by: re@
* Work around the problem that some CDROM drives might return differentsos2003-11-181-3/+5
| | | | | | | | TOC's for the same media!! that borks up GEOM. Although this looks like bad HW the following patch removes the chance for GEOM panic'ing. Approved by: re@
* Centralise mode setting. Instead of doing it in all subdrivers, dosos2003-11-117-43/+28
| | | | | | it in ata-all.c where it belongs. Prime controller HW by always setting PIO mode first in attach.
* Update the dump code to flush buffers at the end of the dumpsos2003-11-111-19/+25
| | | | to avoid loosing evt cached data.
* Free the ata_request struct after we are done using it. This should stopscottl2003-11-091-2/+9
| | | | the memory leak seen when using ATAPICAM.
* Fix typo in breaking up requests to size limit.sos2003-11-091-1/+1
| | | | Found by: Peter Edwards <pmedwards@eircom.net>
* Remove the NOGIANT flag again, it was premature.sos2003-11-081-1/+1
|
OpenPOWER on IntegriCloud