lkml.org 
[lkml]   [2002]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: pci segments/domains
    From
       From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Date: Fri, 17 May 2002 15:39:03 +0400

    What about
    dma_addr_t pci_to_pci_map_single(struct pci_dev *master,
    struct pci_dev *target,
    dma_addr_t tgt_addr, size_t size, int dir)

    Could be implemented without much pain if there is enough interest. :-)

    tgt_addr does not make any sense, we are trying to DMA to a device
    resource, so pass a "struct resource *" and "unsigned long res_offset"
    instead of tgt_addr.

    So, as a (real life) example, suppose you wanted to portably point
    your BTTV card at the framebuffer of a video card, you'd do
    something like:

    res = fb_pdev->resource[1];
    res_off = OFFSET_INTO_FRAMEBUFFER;
    bttv_dma_addr = pci_to_pci_map_single(struct pci_dev *bttv_pdev,
    struct pci_dev *fb_pdev,
    res, res_off, size,
    PCI_DMA_FROMDEVICE);

    Note the direction is in terms of the master. The DMA is coming
    "from" the master in this "BTTV capture to framebuffer" case.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

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