summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
Commit message (Collapse)AuthorAgeFilesLines
* When resubmitting a timed out request, reset donecount.mdodd2005-03-021-0/+1
| | | | Submitted by: Nate Lawson <nate AT root.org>
* Handle PIO timeouts in ata_end_transaction() by immediately returning.mdodd2005-03-021-0/+3
| | | | | | | | | | Failure to do this will result in following ata_pio_read() calls walking off the end of the read buffer. This resolves the "memory modified after free" panics common with Thinkpads and CD/DVD drives. Submitted by: Nate Lawson <nate AT root.org>
* In ata_generic_reset() while waiting for both master & slave to becomemdodd2005-03-021-1/+4
| | | | | | | | | idle the 'mask' variable could be set to 0, resulting in the timeout loop running for the full 31 seconds. Handling this case eliminates long hangs on resume on some systems. Submitted by: Nate Lawson <nate AT root.org>
* Use dynamic major number allocation.phk2005-02-271-1/+0
|
* Avoid using tsleep() in the resume path as it may result in themdodd2005-02-071-1/+4
| | | | | | | | | system hanging if timer interrupts aren't running yet. This allows my Thinkpad to resume successfully with APM. Approved by: sos MFC after: 2 weeks
* Boot away another stackgap (one of the lest ones in linuxlator/i386) bysobomax2005-01-301-2/+11
| | | | | | | | | | providing special version of CDIOCREADSUBCHANNEL ioctl(), which assumes that result has to be placed into kernel space not user space. In the long run more generic solution has to be designed WRT emulating various ioctl()s that operate on userspace buffers, but right now there is only one such ioctl() is emulated, so that it makes little sense. MFC after: 2 weeks
* Catchup to the iodata renamingimp2005-01-261-1/+1
|
* Further update to the Promise code.sos2005-01-011-39/+70
| | | | Support should now cover all old and current products.
* Loosen the probe a bit.sos2004-12-241-5/+9
| | | | | Try to get out of probing as early as possible on (hopefully) vacant channels.
* Update the Promise support for combo (SATA+PATA) controllers.sos2004-12-241-1/+6
|
* Pass the file->flags down to geom ioctl handlers.phk2004-12-121-2/+2
| | | | | | | | Reject certain ioctls if write permission is not indicated. Bump geom API version. Reported by: Ruben de Groot <mail25@bzerk.org>
* Compensate for off by one bugs in disk firmware for 48BIT addressing cutover.sos2004-12-094-3/+5
|
* Update the ICH6 support so all 4 SATA channels can be used.sos2004-12-081-5/+13
| | | | | | | We still use "normal" mode, AHCI mode is in the works still. HW donated by: Sentex HW donated by: Yahoo!
* Add support for the ITE IT8212F controller.sos2004-12-083-5/+117
| | | | HW donated by: Yahoo!
* Reset timeout when we are back from interrupt.sos2004-12-081-0/+3
|
* Add first shot on support for the new Promise SATAII chips.sos2004-12-082-48/+116
| | | | HW donated by: pil.dk
* Correct logical error, result was that retries wasn't always made butsos2004-12-081-1/+2
| | | | failure reported instead.
* Return ATA register values in the request struct when ATAREQUEST returns.sos2004-11-242-5/+10
|
* Don't set the BUS_DMA_ALLOCNOW flag for the parent tag or the tags that arescottl2004-11-171-3/+3
| | | | | | used for static memory allocations. Discussed with: sos
* Tweaks to the resource allocation to allow a few of my obscureimp2004-11-101-7/+7
| | | | cdrom/ata controller PC Card devices work better.
* Do not retry on requests that has lost thier device during reinit.sos2004-10-201-8/+5
| | | | | | | Should fix hangs on IBM's etc with the fake slave problem. MFC: asap
* Idle the channel earlier in reinit().sos2004-10-191-10/+10
| | | | Cosmetic change to suspend, dont call tsleep an extra time at exit.
* Cosmeticssos2004-10-191-6/+2
|
* Return the unit number of a channel instead of a hardcoded '1' fromle2004-10-191-1/+1
| | | | | | | | | the ATA pccard locking function. This makes pccard devices like Compact Flash cards work again. PR: kern/72805 Submitted by: James E. Flemer <jflemer@alum.rpi.edu> MFC in: 2 days
* Refine locking so it covers the "running" variable as well.sos2004-10-132-108/+108
| | | | Adjust comments etc to fit the new locking system.
* Dont sleep with lock held.sos2004-10-101-1/+1
|
* Add support for the ICH6 in legacy mode.sos2004-10-092-0/+6
| | | | | | The AHCI part is not supported yet, but is in the works. 5.3 RC1 candidate
* Move the PC98 specific geometry "gunk" to geom_pc98.c where it belongs.sos2004-10-073-8/+3
| | | | | | | | This also adds support for bigger disks on the controller I have access to, and maybe others if I understood the adhoc methods used on those. Those with more PC98 bigdrive controllers it is hereby invited to add/fix support for those in geom_pc98.c and not using #ifdef PC98 all over the place.
* Add SHARP to the pool of drives that doesn not need byteswapping ofsos2004-10-071-5/+7
| | | | the model etc fields from identify.
* Fix the PC98 lockups on boot.sos2004-10-069-70/+135
| | | | | The interchannel locking for PC98 needed to be updated to match the rest of the locking in ATA.
* Always set half'n'half mode on ICH* chips.sos2004-10-011-0/+1
|
* Fix the serverworks modesetting code, of mask offset was wrong.sos2004-10-011-14/+16
|
* Resurrect dump that broke with the last update.sos2004-09-301-5/+4
|
* Remove the old ATA_*LOCK_CH macros that used atomic ops and usesos2004-09-265-215/+258
| | | | | | | | | | | | | mutexes instead. This closes the last (known) race issues in ATA which should fix the various hangs etc seen on heavy loaded systems. Change from using timeout functions to using callout functions in the timeout code. This together with above closes the race that could happen if timeout and device interrupt occured simultaniously. Also fix the possible recursion in ata_reinit() on very dodgy devices that could take us down in the probe.
* Rearrange the order of I/O's in dma-start/stop, some chipsets are verysos2004-09-261-2/+2
| | | | picky on the order of this, especially in error situations.
* Ignore leading '_' in model name returned by devices.sos2004-09-161-1/+1
| | | | | | | This make "_NEC" devices appear as "NEC" which is more corrent. The reason is tha NEC originally screwed up on the byteorder in the model string, so now that they have realized that they prefixed the '_' so that not every ATA driver on the planet would call them "EN C" :)
* Reduce the amount of memory reported to busdma.sos2004-09-102-8/+10
| | | | | This made the requirements for bouncebuffers too big with PAE. Cleanup the way size defines for transfers are implemented.
* Release the hold on ata_delayed_attach earlier so we can use tsleepsos2004-09-091-6/+7
| | | | | | in the boot probe as well. Suggested by: gibbs
* Introduce ata_udelay() that uses tsleep instead of DELAY if possible.sos2004-09-034-7/+18
| | | | | | In places where we have long delays that doesn't depend on too accurate timing, use ata_udelay() instead of DELAY() so we dont uselessly spin the CPU if not nessesary;
* Sync promise_mio_command with WIP on the Promise line of SATA controllers.sos2004-09-031-4/+9
|
* Cleanup the defines used for various chipsets.sos2004-09-032-19/+31
| | | | Add new nVidia controllers.
* Cleanup the storing and printing of the device transfermode for SATA.sos2004-09-012-14/+12
|
* remove unused prototypesos2004-08-271-1/+0
|
* Fix the handling of "inflight" requests when doing reinit's.sos2004-08-274-7/+35
| | | | | | Add missing untimeout that would get lost in handling of some error situations, and caused what looked like random timeouts afterwards when the timeout fired.
* Set and reset the right bit for UDMA enable/disable on the ICH* chips.sos2004-08-271-2/+2
|
* Rearrange the call to disk_destroy.sos2004-08-271-6/+6
| | | | Suggested by: phk
* Sii_reset needs to wait up to 1 second to get slow disks with it sosos2004-08-241-1/+1
| | | | use tsleep instead of DELAY.
* Always pick up giant before returning from an ioctl call.sos2004-08-241-2/+4
|
* Properly check malloc returns.sos2004-08-241-10/+19
|
* Workaround devices that responds with registers as *both* master & slave,sos2004-08-221-2/+10
| | | | but fail utterly when we try to talk to the "fake" device.
OpenPOWER on IntegriCloud