Re: pci segments/domains

From: Ivan Kokshaysky (ink@jurassic.park.msu.ru)
Date: Fri May 17 2002 - 07:26:21 EST


On Fri, May 17, 2002 at 04:41:57AM -0700, David S. Miller wrote:
> 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);

Exactly. And this function will look like this

        if (domain(bttv_pdev) == domain(fb_pdev))
                return arch_res_to_bus(res->start) + res_off;
        else if (!interdomain_dma_supported)
                return 0;
        else
                return some_iommu_magic(...);

BTW, I don't see anymore why pci domain info should be exposed to
users at all. :-)

Ivan.
-
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/



This archive was generated by hypermail 2b29 : Thu May 23 2002 - 22:00:14 EST