Uttered Pierre Ossman , spake thus: > I've been trying to figure out how other drivers do it but I can't see > what I'm missing. And the documentation doesn't cover ISA DMA. Allocate your DMA buffer area by OR'ing in the "GFP_DMA" flag. This keeps your DMA buffer below the magical 16MB limit. Also be sure to use "virt_to_bus()" to convert the kernel buffer address into one that you can give to the DMA engine. HTH.