RE: Alpha: virt_to_bus/GFP_DMA problem

Bret Indrelee (bindrele@sbs.com)
Fri, 10 Dec 1999 17:04:54 -0600


Zach Brown [mailto:zab@zabbo.net] wrote:
> > The right solution IMHO is what David Miller introduced on sbus:
> > instead of using virt_to_bus & co. drivers acquire a DMA
> handler before
> > doing DMA using
> > handle = pci_map_single(pci_dev *dev, void *addr, long len,
> int flags)
> > or
> > handle = pci_map_sg(pci_dev *dev, struct scatterlist *sg, int flags)
>
> definitely. but do we need to make this dangerously
> elaborate or tie it
> in with a insanely flexible (if slow) zoning allocator?

You might want to pull a page from SBus and rather than continuously add new
flags (DMA24, DMA28, DMA32, DMA41, ad nauseum), make it a parameter that
indicates how many address bits the device can handle and MAYBE a flag that
says upper address bits must be zero.

> the ess maestro sound board has 28bits of address lines. it can have
> multiple channels being dmaed and mixed into output at once.
> but due to
> the way its referenced, all the memory that is being DMAed must be
> phiscally within 4meg of each other.

I think you intended to say the address of all memory being DMAed must use
the same values for the upper address lines. They probably latch the upper
address lines. Takes less gates, since all the counters don't have to carry
up into those higher address bits. Not a good reason, but any number of
hardware engineers have convinced themselves otherwise.

-Bret

-------------------------------------------------------------
SBS Technologies, Connectivity Products
... solutions for real-time connectivity

Bret Indrelee, Engineer
SBS Technologies, Inc., Connectivity Products
1284 Corporate Center Drive, St. Paul MN 55121
Direct: (651) 905-4731
Main: (651) 905-4700 Fax: (651) 905-4701
E-mail: bindrelee@sbs-cp.com http://www.sbs.com
-------------------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/