int pci_set_dma_mask(struct pci_dev *pdev, u64 device_mask);
-The query for consistent allocations is performed via a a call to
+The query for consistent allocations is performed via a call to
pci_set_consistent_dma_mask():
int pci_set_consistent_dma_mask(struct pci_dev *pdev, u64 device_mask);
device supports. It returns zero if your card can perform DMA
properly on the machine given the address mask you provided.
-If it returns non-zero, your device can not perform DMA properly on
+If it returns non-zero, your device cannot perform DMA properly on
this platform, and attempting to do so will result in undefined
behavior. You must either use a different mask, or not use DMA.
always going to be SAC addressable.
The first thing your driver needs to do is query the PCI platform
-layer with your devices DAC addressing capabilities:
+layer if it is capable of handling your devices DAC addressing
+capabilities:
- int pci_dac_set_dma_mask(struct pci_dev *pdev, u64 mask);
+ int pci_dac_dma_supported(struct pci_dev *hwdev, u64 mask);
-This routine behaves identically to pci_set_dma_mask. You may not
-use the following interfaces if this routine fails.
+You may not use the following interfaces if this routine fails.
Next, DMA addresses using this API are kept track of using the
dma64_addr_t type. It is guaranteed to be big enough to hold any