Subject: CVS commit: src
To: None <source-changes@netbsd.org>
From: Manuel BOUYER <bouyer@netbsd.org>
List: source-changes
Date: 09/20/1998 06:16:18
Module Name:	src
Committed By:	bouyer
Date:		Sun Sep 20 13:16:18 UTC 1998

Modified Files:
	src/sys/dev/ata [bouyer-ide]: ata.c ata_wdc.c atavar.h wd.c
	src/sys/dev/ic [bouyer-ide]: wdc.c wdcreg.h wdcvar.h
	src/sys/dev/scsipi [bouyer-ide]: atapi_wdc.c
	src/sys/dev/pci [bouyer-ide]: pciide.c pciidereg.h
Log Message:
- always call config_found() from wdcattach(), instead of printing our own
the "not configured" message ourselve. When no atapibus is configured,
use a fake ata_atapi_attach, else call wdc_atapibus_attach(). This way we
don't have to include the whole atapi support in an ata-only config.
- the dma_* function pointers take a 'int flags' as last argument, instead
of an 'int read'. The 2 valid flags are: WDC_DMA_READ (to select read/write)
and WDC_DMA_POLL, to signal interrupt-less mode (for core dumps).
- Reworked wdcprobe() so look more like the old one. A status of 0xff is
interpreted as "no drive" (freebsd does this); this this speed up
the probe for non-IDE machines (a reset timeout has been bumped to 31s,
to match the specs). The probe set ups the drive flags to either ATA or
ATAPI (depend on register signature) or OLD (if register signature don't
match, but a working drive appears to be there). Later the ATA code
will look at the OLD flag to decide wether there is no drive, or an old
(ST506) one if WDC_IDENTIFY fails.
- For known PCI chips, don't use the wdcprobe() heuristic to find wether
a channel is enabled/disabled; use the chip's specific registers for this.
- Clear the command queue when we have a polled command. This allows dumps to
work even if a command was being handled by the controller at panic time.
- Increase the number of available DMA segments by one, as user requests may
not be aligned on a page boundary.