Subject: CVS commit: syssrc/sys/arch/i386/mca
To: None <source-changes@netbsd.org>
From: Jaromir Dolecek <jdolecek@netbsd.org>
List: source-changes
Date: 11/24/2001 00:24:37
Module Name:	syssrc
Committed By:	jdolecek
Date:		Fri Nov 23 22:24:36 UTC 2001

Modified Files:
	syssrc/sys/arch/i386/mca: mca_machdep.c

Log Message:
Properly glue in the MCA DMA controller support, using bus_dma
interface, using the code from dev/mca/edc_mca.c:edc_setup_dma()
as a base. Use ISA routines for dmamap/dmamem functions, primarily
to get the buffer bouncing for >16MB RAM machines.  The MCA DMA
channel is stored in unused upper 4 bits of ISA DMA cookie's
id_flags, hopefully that's not too disgusting :)
Export mca_dmamap_create(), which returns map suitable for further DMA
operations using MCA DMA controller.

mca_busprobe(): also report if machine has 32bit DMA (feature byte 2
bit 1)

Use symbolic names for DMA controller commands - I've finally got
info what they mean from Tymm Twillman's Linux include/asm/mca_dma.h.
No more magic constants! Also fix bug in the way DMA counter has been
setup - for 16bit DMA, it's necessary to tell the controller _half_
the byte count. This was wrong in the former code.


To generate a diff of this commit:
cvs rdiff -r1.10 -r1.11 syssrc/sys/arch/i386/mca/mca_machdep.c

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