[lkml]   [1999]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Alpha: virt_to_bus/GFP_DMA problem

    > 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?

    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.

    so to support many channels playing without preallocating the memory a
    maestro driver would want alloc( < 256meg) and later an alloatiion "near"
    its previous one. Yuck.

    so I guess my point is that we don't want to go too nutty with the API,
    there will always be some broken devices that will just have to not work
    to their fullest.

    > unmap will then free the translation tables on Sparc, Alpha and as SCT said
    > on some AGP chipsets as well.

    *nod* it appears some agp chipsets can do pci addressing through the

    -- zach

    - - - - - -
    007 373 5963

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:55    [W:0.021 / U:1.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site