Hi Dan,
I've been looking over how your patches change the ioatdma driver. I
like the idea of removing the multiple entry points for virtual address
vs. page struct arguments, and just using dma_addr_t for the driver
interfaces.
But, I don't think having both ioatdma and iop-adma implement map_page,
map_single, unmap_page, and unmap_single entry points is much better.
Do you see a reason why it wouldn't work to expose the generic device
for a DMA channel, and replace instances of
dma_device->map_single(dma_chan, src, len, DMA_TO_DEVICE)
with
dma_map_single(dma_device->dev, src, len, DMA_TO_DEVICE)
I am a little concerned about having the DMA mapping happen outside of
the driver, but the unmapping is still in the driver cleanup routine.
I'm not sure if it's really a problem, or how I'd change it though.
- Chris
On 2/6/07, Leech, Christopher <[email protected]> wrote:
> Hi Dan,
>
> I've been looking over how your patches change the ioatdma driver. I
> like the idea of removing the multiple entry points for virtual address
> vs. page struct arguments, and just using dma_addr_t for the driver
> interfaces.
>
> But, I don't think having both ioatdma and iop-adma implement map_page,
> map_single, unmap_page, and unmap_single entry points is much better.
> Do you see a reason why it wouldn't work to expose the generic device
> for a DMA channel, and replace instances of
>
> dma_device->map_single(dma_chan, src, len, DMA_TO_DEVICE)
>
> with
>
> dma_map_single(dma_device->dev, src, len, DMA_TO_DEVICE)
>
I was initially concerned about a case where dma_map_single was not
equivalent to pci_map_single. Looking now, it appears that case would
be a bug, so I will integrate this change.
> I am a little concerned about having the DMA mapping happen outside of
> the driver, but the unmapping is still in the driver cleanup routine.
> I'm not sure if it's really a problem, or how I'd change it though.
>
> - Chris
Thanks,
Dan