> > *buffer = 0x12345f00;
> > dma_addr = pci_map_single(dev,buffer,len,PCI_DMA_TODEVICE);
> > pci_write_config_dword(dev,reg,dma_addr);
> >
> > If caching is write-back my feeling is there is nothing that guarantees
> > the modification went to physmem before the device starts reading from it.
>
> Exactly. That's why you must call pci_dma_sync_single before the
> transfer, if you used pci_map_single.
I didn't see that in DMA-mapping.txt ... if it's needed, I'd expect
that pci_map_single would do that. The sync_single call is mentioned
in the context of reusing mappings.
FYI attached is the latest pcipool patch, which includes updates
to the DMA-mapping.txt file. The "what memory can you DMA
from" text is from DaveM, and I added the pci_pool info. No
API changes involved.
- Dave
pcipool-0414.patch.bz2