Subject: CVS commit: syssrc
To: None <>
From: Manuel BOUYER <>
List: source-changes
Date: 04/01/2000 06:32:27
Module Name:	syssrc
Committed By:	bouyer
Date:		Sat Apr  1 14:32:26 UTC 2000

Modified Files:
	syssrc/sys/dev/ata: ata_wdc.c atavar.h wdvar.h
	syssrc/sys/dev/ic: wdc.c wdcvar.h
	syssrc/sys/dev/pci: pciide.c pciidevar.h
	syssrc/sys/dev/scsipi: atapi_wdc.c atapiconf.c atapiconf.h

Log Message:
- DMA code cleanup: pciide_dma_finish() doesn't stop/unload the current DMA op
  if an IRQ was not detected, unless the force flag was given. Use this to
  detect if the IRQ was for us (closer to shared IRQ for controllers which
  don't have their own IRQ handler in pciide.c) and to poll for DMA xfer.
  Also makes the timeout recovery code simpler.
- ATAPI cleanup: don't call controller-specific functions from atapiconf.c
  (wdc_*), so that it's possible to attach an atapibus to something else
  than a wdc/pciide (Hi Lennart :).
  Overload struct scsi_adapter with struct atapi_adapter, defined
  as struct scsi_adapter + atapi-specific callbacks. scsipi_link still points
  to an scsi_adapter, atapi code casts it to atapi_adapter if needed.
  Move atapi_softc to atapiconf.h so that it can be used by the underlying
  controller code (e.g. atapi_wdc.c).
  Add an atapi-specific callback *atapi_probedev(), which probe a drive
  in a controller-specific way, allocate the sc_link and fills in the
  ataparams if needed. It then calls atapi_probedev() (from atapiconf.c)
  to do the generic initialisations and attach the device.
- While I'm there merge and centralise the state definitions in atavar.h.
  It should now be possible to use a common ata/atapi routine to set the
  drive's modes (will do later).

To generate a diff of this commit:
cvs rdiff -r1.25 -r1.26 syssrc/sys/dev/ata/ata_wdc.c
cvs rdiff -r1.15 -r1.16 syssrc/sys/dev/ata/atavar.h
cvs rdiff -r1.4 -r1.5 syssrc/sys/dev/ata/wdvar.h
cvs rdiff -r1.83 -r1.84 syssrc/sys/dev/ic/wdc.c
cvs rdiff -r1.23 -r1.24 syssrc/sys/dev/ic/wdcvar.h
cvs rdiff -r1.55 -r1.56 syssrc/sys/dev/pci/pciide.c
cvs rdiff -r1.3 -r1.4 syssrc/sys/dev/pci/pciidevar.h
cvs rdiff -r1.32 -r1.33 syssrc/sys/dev/scsipi/atapi_wdc.c
cvs rdiff -r1.33 -r1.34 syssrc/sys/dev/scsipi/atapiconf.c
cvs rdiff -r1.8 -r1.9 syssrc/sys/dev/scsipi/atapiconf.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.