I spent a few minutes fixing it. These two patches fixes compile issue for me on 5.18.1-arch1-1
diff blackmagic-12.3a10/blackmagic_core.c /usr/src/blackmagic-12.3a10/blackmagic_core.c
488c488
< if (pci_set_dma_mask(pdev, BMD_DMA_64_MASK) < 0)
---
> if (dma_set_mask(&pdev->dev, BMD_DMA_64_MASK) < 0)
490c490
< if (pci_set_dma_mask(pdev, BMD_DMA_32_MASK) < 0)
---
> if (dma_set_mask(&pdev->dev, BMD_DMA_32_MASK) < 0)
diff blackmagic-12.3a10/blackmagic_dma.c /usr/src/blackmagic-12.3a10/blackmagic_dma.c
84,86c84,86
< case DL_DMA_TO_DEVICE: return PCI_DMA_TODEVICE;
< case DL_DMA_FROM_DEVICE: return PCI_DMA_FROMDEVICE;
< case DL_DMA_BIDIRECTIONAL: return PCI_DMA_BIDIRECTIONAL;
---
> case DL_DMA_TO_DEVICE: return DMA_TO_DEVICE;
> case DL_DMA_FROM_DEVICE: return DMA_FROM_DEVICE;
> case DL_DMA_BIDIRECTIONAL: return DMA_BIDIRECTIONAL;
90c90
< return PCI_DMA_NONE;
---
> return DMA_NONE;
139c139
< e->dma_addr = pci_map_page(pdev, pages[i], 0, PAGE_SIZE, direction);
---
> e->dma_addr = dma_map_page(pdev, pages[i], 0, PAGE_SIZE, direction);
174c174
< e->dma_addr = pci_map_page(pdev, page, 0, PAGE_SIZE, direction);
---
> e->dma_addr = dma_map_page(pdev, page, 0, PAGE_SIZE, direction);
181c181
< e->dma_addr = pci_map_single(pdev, address, size, direction);
---
> e->dma_addr = dma_map_single(pdev, address, size, direction);
229c229
< pci_unmap_page(sl->pdev, e->dma_addr, PAGE_SIZE, direction);
---
> dma_unmap_page(&sl->pdev->dev, e->dma_addr, PAGE_SIZE, direction);
234c234
< pci_unmap_single(sl->pdev, e->dma_addr, sl->size, direction);
---
> dma_unmap_single(&sl->pdev->dev, e->dma_addr, sl->size, direction);
and
diff blackmagic-io-12.3a10/bm_mm.c /usr/src/blackmagic-io-12.3a10/bm_mm.c
58c58
< #define bm_pci_dma_mapping_error(dev, addr) pci_dma_mapping_error(dev, addr)
---
> #define bm_pci_dma_mapping_error(dev, addr) dma_mapping_error(dev, addr)
60c60
< #define bm_pci_dma_mapping_error(dev, addr) pci_dma_mapping_error(addr)
---
> #define bm_pci_dma_mapping_error(dev, addr) dma_mapping_error(addr)
226,227c226,227
< dlist->addrs[i] = pci_map_page(pci->pdev, umem->pages[i], 0, PAGE_SIZE, dir);
< if (bm_pci_dma_mapping_error(pci->pdev, dlist->addrs[i]))
---
> dlist->addrs[i] = dma_map_page(&pci->pdev->dev, umem->pages[i], 0, PAGE_SIZE, dir);
> if (bm_pci_dma_mapping_error(&pci->pdev->dev, dlist->addrs[i]))
249,250c249,250
< dlist->addrs[0] = pci_map_single(pci->pdev, addr, size, dir);
< if (bm_pci_dma_mapping_error(pci->pdev, dlist->addrs[0]))
---
> dlist->addrs[0] = dma_map_single(&pci->pdev->dev, addr, size, dir);
> if (bm_pci_dma_mapping_error(&pci->pdev->dev, dlist->addrs[0]))
278,279c278,279
< dlist->addrs[i] = pci_map_page(pci->pdev, page, 0, PAGE_SIZE, dir);
< if (bm_pci_dma_mapping_error(pci->pdev, dlist->addrs[i]))
---
> dlist->addrs[i] = dma_map_page(&pci->pdev->dev, page, 0, PAGE_SIZE, dir);
> if (bm_pci_dma_mapping_error(&pci->pdev->dev, dlist->addrs[i]))
295c295
< pci_unmap_single(pci->pdev, dlist->addrs[0], dlist->length, dir);
---
> dma_unmap_single(&pci->pdev->dev, dlist->addrs[0], dlist->length, dir);
304c304
< pci_unmap_page(pci->pdev, dlist->addrs[i], PAGE_SIZE, dir);
---
> dma_unmap_page(&pci->pdev->dev, dlist->addrs[i], PAGE_SIZE, dir);
diff blackmagic-io-12.3a10/bm_pci.c /usr/src/blackmagic-io-12.3a10/bm_pci.c
79c79
< if (pci_set_dma_mask(pci->pdev, BM_DMA_64BIT_MASK) < 0)
---
> if (dma_set_mask(&pci->pdev->dev, BM_DMA_64BIT_MASK) < 0)
81c81
< if (pci_set_dma_mask(pci->pdev, BM_DMA_32BIT_MASK) < 0)
---
> if (dma_set_mask(&pci->pdev->dev, BM_DMA_32BIT_MASK) < 0)
Pinned Comments
goldensuneur commented on 2020-03-02 19:00 (UTC)
I finally had time to investigate the issue. It looks like that as of 11.5, the
DesktopVideoHelper.service
has to be running for the capture card to work properly.