diff --git a/ddbridge/ddbridge-main.c b/ddbridge/ddbridge-main.c index 14f94e2..b3437d1 100644 --- a/ddbridge/ddbridge-main.c +++ b/ddbridge/ddbridge-main.c @@ -283,11 +283,17 @@ static int __devinit ddb_probe(struct pci_dev *pdev, pci_set_master(pdev); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)) if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); - } else return -ENODEV; + } else +#else + if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) + if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) +#endif + return -ENODEV; dev = vzalloc(sizeof(*dev)); if (!dev)