|
@@ -27,12 +27,6 @@
|
|
|
#include "cthw20k1.h"
|
|
|
#include "ct20k1reg.h"
|
|
|
|
|
|
-#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
|
|
|
-
|
|
|
struct hw20k1 {
|
|
|
struct hw hw;
|
|
|
spinlock_t reg_20k1_lock;
|
|
@@ -1904,19 +1898,18 @@ static int hw_card_start(struct hw *hw)
|
|
|
{
|
|
|
int err;
|
|
|
struct pci_dev *pci = hw->pci;
|
|
|
+ const unsigned int dma_bits = BITS_PER_LONG;
|
|
|
|
|
|
err = pci_enable_device(pci);
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
|
|
|
/* Set DMA transfer mask */
|
|
|
- if (dma_set_mask(&pci->dev, CT_XFI_DMA_MASK) < 0 ||
|
|
|
- dma_set_coherent_mask(&pci->dev, CT_XFI_DMA_MASK) < 0) {
|
|
|
- dev_err(hw->card->dev,
|
|
|
- "architecture does not support PCI busmaster DMA with mask 0x%llx\n",
|
|
|
- CT_XFI_DMA_MASK);
|
|
|
- err = -ENXIO;
|
|
|
- goto error1;
|
|
|
+ if (dma_set_mask(&pci->dev, DMA_BIT_MASK(dma_bits))) {
|
|
|
+ dma_set_coherent_mask(&pci->dev, DMA_BIT_MASK(dma_bits));
|
|
|
+ } else {
|
|
|
+ dma_set_mask(&pci->dev, DMA_BIT_MASK(32));
|
|
|
+ dma_set_coherent_mask(&pci->dev, DMA_BIT_MASK(32));
|
|
|
}
|
|
|
|
|
|
if (!hw->io_base) {
|