#include <linux/interrupt.h>
#include <linux/delay.h>
-#define CT_XFI_DMA_MASK DMA_BIT_MASK(32) /* 32 bits */
+#if BITS_PER_LONG == 32
+#define CT_XFI_DMA_MASK DMA_BIT_MASK(32) /* 32 bit PTE */
+#else
+#define CT_XFI_DMA_MASK DMA_BIT_MASK(64) /* 64 bit PTE */
+#endif
static u32 hw_read_20kx(struct hw *hw, u32 reg);
static void hw_write_20kx(struct hw *hw, u32 reg, u32 data);
int err = 0;
struct pci_dev *pci = hw->pci;
unsigned int gctl;
- unsigned int dma_mask = 0;
err = pci_enable_device(pci);
if (err < 0)
return err;
/* Set DMA transfer mask */
- dma_mask = CT_XFI_DMA_MASK;
- if (pci_set_dma_mask(pci, dma_mask) < 0 ||
- pci_set_consistent_dma_mask(pci, dma_mask) < 0) {
+ if (pci_set_dma_mask(pci, CT_XFI_DMA_MASK) < 0 ||
+ pci_set_consistent_dma_mask(pci, CT_XFI_DMA_MASK) < 0) {
printk(KERN_ERR "ctxfi: architecture does not support PCI "
- "busmaster DMA with mask 0x%x\n", dma_mask);
+ "busmaster DMA with mask 0x%llx\n", CT_XFI_DMA_MASK);
err = -ENXIO;
goto error1;
}