summaryrefslogtreecommitdiff
path: root/sys/dev/ic/wdc.c
AgeCommit message (Collapse)Author
2006-05-22In wdcprobe(), directly invoke wdc_do_reset() instead of using the resetMiod Vallat
reset function pointer, as this can cause a NULL pointer dereference on some systems.
2006-05-08Revert last commit till a better method can be found.Jonathan Gray
At least one system (Ben Lovett's) had issues with the change.
2006-05-07Default to Ultra DMA Mode 6 not 5 when we know we have a nativeJonathan Gray
SATA drive. ok grange@
2006-05-03Provide a function pointer that allows for the wdc resetJonathan Gray
method to be changed as required. This will be required for dealing with several chips in pciide.
2006-02-10Fix LBA48 access for ServerWorks SATA.Mark Kettenis
ok grange@
2005-11-09Don't fall back to fake geometry if ata_get_params() fails.Uwe Stuehler
"looks sane" grange@; tested by niall@ krw@ jmc@ jolan@
2005-10-21Zap return at the end of a void function. No binary change.Alexander Yurchenko
2004-10-17Add a callback drv_probe() to allow underlying ata controller driverAlexander Yurchenko
to probe for drives in its own way. It's a no-op for now but will be needed for native sata support.
2004-10-17Move declaration of default _vtbl members (wdc_default_*) toAlexander Yurchenko
wdcvar.h.
2004-09-15Better debug printfs: missing \n and show xfer flags inAlexander Yurchenko
wdc_exec_xfer().
2004-02-19wdc logs fixes from costa@:Alexander Yurchenko
1) wdc_get_log is at splbio() to prevent interrupt handlers from updating the log 2) work hard to ensure that wdc_tail and wdc_head are between 0 and wdc_log_cap, even if wdc_log or wdc_get_log is run concurrently against itself. With this patch, running concurrent wdc_log's may corrupt the log, but it should not cause any panics. 3) Make sure the buffer always starts on a record boundary. Otherwise said, wdc_tail should always be on a record boundary.
2004-01-23Use %b to display status register, this will make bug reports moreAlexander Yurchenko
informative. Also convert WDCS_BITS string to caps.
2003-12-16Pass gcc -Wsign-compare; ok grange@Todd C. Miller
2003-11-19Sync with NetBSD probe code: deal with non-pullups ide bus whenAlexander Yurchenko
testing status register and a better comments on probe logic. Tested on i386, sparc64 and macppc by me, jmc@, matthieu@, sturm@ and drahn@. ok costa@
2003-11-17Various cleanups, knf, better debug messages.Alexander Yurchenko
2003-11-17Don't wait for DRQ after issuing IDENTIFY command; instead check for DRQAlexander Yurchenko
asserted after BSY is cleared in data read codepath. Solves delays in probe. The first version of this diff was done by costa@ a long time ago but had some issues. This one is a partial sync with NetBSD. ok costa@
2003-11-13One byte can't hold a value > 255.Alexander Yurchenko
Spotted by Mr. GCC3.
2003-11-05Back wdc reset change, now in more careful variant.Alexander Yurchenko
Tested on matthieu's U5.
2003-10-31Back all the changes except the wdc reset part, this will come later.Alexander Yurchenko
Tested on matthieu's U5.
2003-10-29Revert to 1.70 for now which is the last working version on my u5.Matthieu Herrb
ok deraadt@
2003-10-27Skip ATA modes detection for SATA drives, it's useless and someAlexander Yurchenko
SATA drives really don't like it. Add a delay between drive reset and issuing IDENTIFY command, some drives need it (from NetBSD). This fixes problems with SATA drives reported by Jonathon Fletcher <jonathon.fletcher@pobox.com>. He also provided access to the test machine.
2003-10-26Print error registers values in debug message after reset too.Alexander Yurchenko
2003-10-26Device reset improvements:Alexander Yurchenko
- put the reset protocol itself in the separate function __wdcdo_reset() so we don't need anymore to keep in sync two reset code paths; - change the reset protocol to something like FreeBSD and NetBSD do, this fixes slave ATA drive detect with weird ATAPI master (reported by fgsch@); Discussed with costa@. Tested by me, fgsch@, millert@, canacar@.
2003-10-21typos from Tom Cosgrove;Jason McIntyre
Tom: I did not commit a couple of your changes. i did not include some punctuation fixes (full stops, etc.) mnemorable -> mnemonic: i decided memorable was probably better instrunctions -> instruction: i kept the plural
2003-10-20typo; netbsdAlexander Yurchenko
2003-10-19KNFAlexander Yurchenko
2003-10-17Merge an old fix from NetBSD:Alexander Yurchenko
- do not stop/unload current DMA operation if an IRQ was not detected by DMA engine unless the force flag was given, fixes DMA problems in shared IRQ setups; - ack interrupt before entering DMA codepath Tested by many. Work by niklas@ but he doesn't want to commit it for some reason.
2003-10-16Cleanup a bit, more pretty debug messages.Alexander Yurchenko
2003-10-16Allow setting of wdcdebug*_mask variables via preprocessor defines.Alexander Yurchenko
This makes creating debug kernels be much more easy.
2003-10-16Kill two static function declarations.Alexander Yurchenko
2003-09-28kill trailing spaces, no functional changesAlexander Yurchenko
2003-07-06trailing spacesAlexander Yurchenko
2003-06-25Restore the original wdcdebug_mask instead of clearing DEBUG_PROBE whenHenric Jungheim
done with it. This makes "wdcprobe()" consistent with "wdcattach()". ok grange@
2003-02-21Fix Manuel Bouyer's copyright, from NetBSDAlexander Yurchenko
ok deraadt@
2003-02-13Don't force all ATAPI devices to PIO mode 3, there areAlexander Yurchenko
devices which only support PIO mode 2 or less. Use atap_oldpiotiming to obtain supported mode for such devices. Also use SET FEATURES only for PIO mode > 2. Work by Alec Skelly <alec@dtkco.com> with my little help. ok costa@
2002-12-22Define atagettrace_t type and use it instead of struct atagettrace.Alexander Yurchenko
ok costa@
2002-12-22No more magic wdc events types, give them names.Alexander Yurchenko
ok costa@
2002-12-19Protect WDCDEBUG_PRINT macro with do {} while (0)Alexander Yurchenko
ok costa@
2002-12-12Always use queue(3) macros.Alexander Yurchenko
ok chris@ gluk@
2002-10-16minor formatting.Artur Grabowski
2002-10-09Remove trailing '\n's from panic messages.Kenneth R Westerback
Started by a commit to siop from provos@netbsd.org. ok miod@ millert@
2002-07-02Fix PIO write state machine. This has been totally broken since 2.5, but sinceConstantine Sapuntzakis
this code path is only executed for IOCTLs, and all of our IOCTLs only read from the device, nobody noticed. Thanks to grange and gluk for finding this one.
2002-05-24protect biodone with splbio (this is the first time the splbio isArtur Grabowski
not really needed, just added to satisfy the assert).
2002-05-24Replace a home-grown splassert-like thing with the real stuff.Artur Grabowski
2002-05-03LBA48 support.Grigoriy Orlov
Adopted from NetBSD by Alexander Yurchenko <grange@openbsd.ru>. costa@ ok.
2002-03-16The new code logs the control signals on the IDE bus. You can extract the logConstantine Sapuntzakis
using atactl <device> dump. The log will help us support more devices. Send logs to csapuntz@
2002-03-14First round of __P removal in sysTodd C. Miller
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2002-01-12Don't try UDMA modes if they aren't supported by the controllerJason Wright
even if the flags enable it. chris@ ok
2002-01-07pass the proc* down the ioctl chain to controller; mjacob@ csapuntz@ okMichael Shalayeff