Running sound cards on VIA chipsets

o	There are problems with VIA chipsets and sound cards that appear to
	lock the hardware solidly. Test programs under DOS have verified the
	problem exists on at least some (but apparently not all) VIA boards

o	VIA have so far failed to bother to answer support mail on the subject
	so if you are a VIA engineer feeling aggrieved as you read this 
	document go chase your own people. If there is a workaround please
	let us know so we can implement it.


Certain patterns of ISA DMA access used for most PC sound cards cause the
VIA chipsets to lock up. From the collected reports this appears to cover a
wide range of boards. Some also lock up with sound cards under Win* as well.

Linux implements a workaround providing your chipset is PCI and you compiled
with PCI Quirks enabled. If so you will see a message
	"Activating ISA DMA bug workarounds"

during booting. If you have a VIA PCI chipset that hangs when you use the
sound and is not generating this message even with PCI quirks enabled
please report the information to the linux-kernel list (see REPORTING-BUGS).

If you are one of the tiny number of unfortunates with a 486 ISA/VLB VIA
chipset board you need to do the following to build a special kernel for
your board

	edit linux/include/asm-i386/dma.h

change

#define isa_dma_bridge_buggy 	(0)

to

#define isa_dma_bridge_buggy 	(1)

and rebuild a kernel without PCI quirk support.


Other than this particular glitch the VIA [M]VP* chipsets appear to work
perfectly with Linux.
