Messages in this thread | | | Date | Fri, 17 May 2002 16:26:21 +0400 | From | Ivan Kokshaysky <> | Subject | Re: pci segments/domains |
| |
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/
| |