diff options
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | 01-blackmagic-dma.patch | 118 | ||||
-rw-r--r-- | 02-blackmagic-io-dma.patch | 105 | ||||
-rw-r--r-- | PKGBUILD | 22 |
4 files changed, 13 insertions, 244 deletions
@@ -1,7 +1,7 @@ pkgbase = decklink pkgdesc = Drivers for Blackmagic Design DeckLink, Intensity or Multibridge video editing cards - pkgver = 12.3 - pkgrel = 2 + pkgver = 12.4 + pkgrel = 1 url = https://www.blackmagicdesign.com/support/family/capture-and-playback arch = i686 arch = x86_64 @@ -9,12 +9,8 @@ pkgbase = decklink makedepends = curl options = !strip options = staticlibs - source = decklink-12.3.tar.gz::https://www.blackmagicdesign.com/api/register/us/download/b69591b5747f4522b97925a53b01a712 - source = 01-blackmagic-dma.patch - source = 02-blackmagic-io-dma.patch - sha256sums = cbf3f8ff384ddab1fbf481f2b1b3be3dd718f5fa4394ab0ae9736935161fd5b0 - sha256sums = 34f4eec30882f51bc62aa560a03a26b9076a28418b5aea961eec54a735ff49bd - sha256sums = 95ccbf3327440e70b614fac2371ee956dff89cc809915292c6c5bde8191a51fe + source = decklink-12.4.tar.gz::https://www.blackmagicdesign.com/api/register/us/download/bc560d799d5a4ecb87e88c4c0add9ca7 + sha256sums = abf35b48024d4e587ff76c44600b19702540a475054e0982183c3e1951333776 pkgname = decklink install = decklink.install diff --git a/01-blackmagic-dma.patch b/01-blackmagic-dma.patch deleted file mode 100644 index 7f762071eaec..000000000000 --- a/01-blackmagic-dma.patch +++ /dev/null @@ -1,118 +0,0 @@ -diff --git a/blackmagic_core.c b/blackmagic_core.c -index 0400061..19706f2 100644 ---- a/blackmagic-12.3a10/blackmagic_core.c -+++ b/blackmagic-12.3a10/blackmagic_core.c -@@ -485,11 +485,19 @@ bool dl_pci_start(void* pci_dev) - #define BMD_DMA_32_MASK DMA_32BIT_MASK - #endif - -+#if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ if (dma_set_mask(&pdev->dev, BMD_DMA_64_MASK) < 0) -+ { -+ if (dma_set_mask(&pdev->dev, BMD_DMA_32_MASK) < 0) -+ goto fail; -+ } -+#else - if (pci_set_dma_mask(pdev, BMD_DMA_64_MASK) < 0) - { - if (pci_set_dma_mask(pdev, BMD_DMA_32_MASK) < 0) - goto fail; - } -+#endif - - return true; - -diff --git a/blackmagic_dma.c b/blackmagic_dma.c -index f44235c..7a8bddf 100644 ---- a/blackmagic-12.3a10/blackmagic_dma.c -+++ b/blackmagic-12.3a10/blackmagic_dma.c -@@ -53,6 +53,7 @@ - #include <asm/uaccess.h> - - #include "blackmagic_lib.h" -+#include "blackmagic_version.h" - - struct dl_dma_entry - { -@@ -81,13 +82,23 @@ static inline int bmd_to_linux_direction(int direction) - { - switch (direction) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ 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; -+ #else - 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; -+ #endif - default: - break; - } -+#if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ return DMA_NONE; -+#else - return PCI_DMA_NONE; -+#endif - } - - static unsigned long dl_dma_get_num_pages(void *address, unsigned long size) -@@ -136,7 +147,11 @@ dl_dma_map_user_buffer(void* page_array, unsigned long num_pages, int direction, - - for (i = 0; i < num_pages; i++) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ e->dma_addr = dma_map_page(pdev, pages[i], 0, PAGE_SIZE, direction); -+ #else - e->dma_addr = pci_map_page(pdev, pages[i], 0, PAGE_SIZE, direction); -+ #endif - e = next_entry(e); - } - -@@ -171,14 +186,22 @@ dl_dma_map_kernel_buffer(void *address, unsigned long size, int direction, int i - { - page = vmalloc_to_page((void*)(unsigned long)start_addr + offset); - offset += PAGE_SIZE; -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ e->dma_addr = dma_map_page(pdev, page, 0, PAGE_SIZE, direction); -+ #else - e->dma_addr = pci_map_page(pdev, page, 0, PAGE_SIZE, direction); -+ #endif - e = next_entry(e); - } - sl->num_pages = num_pages; - } - else - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ e->dma_addr = dma_map_single(pdev, address, size, direction); -+ #else - e->dma_addr = pci_map_single(pdev, address, size, direction); -+ #endif - sl->dma_is_single = 1; - sl->size = size; - } -@@ -226,12 +249,21 @@ void dl_dma_unmap_kernel_buffer(struct dl_dma_list* sl, int direction) - { - for (i = 0; i < sl->num_pages; i++) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ dma_unmap_page(&sl->pdev->dev, e->dma_addr, PAGE_SIZE, direction); -+ #else - pci_unmap_page(sl->pdev, e->dma_addr, PAGE_SIZE, direction); -+ #endif - e = next_entry(e); - } - } -- else -+ else { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ dma_unmap_single(&sl->pdev->dev, e->dma_addr, sl->size, direction); -+ #else - pci_unmap_single(sl->pdev, e->dma_addr, sl->size, direction); -+ #endif -+ } - - destroy_dl_dma_entry(sl); - } diff --git a/02-blackmagic-io-dma.patch b/02-blackmagic-io-dma.patch deleted file mode 100644 index 5bf6844b6832..000000000000 --- a/02-blackmagic-io-dma.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff --git a/bm_mm.c b/bm_mm.c -index 64ab876..7b2d6a0 100644 ---- a/blackmagic-io-12.3a10/bm_mm.c -+++ b/blackmagic-io-12.3a10/bm_mm.c -@@ -54,7 +54,9 @@ struct bm_mmap - bm_user_mem_t umem; // Must be last member in struct - }; - --#if KERNEL_VERSION_OR_LATER(2, 6, 27) -+#if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ #define bm_pci_dma_mapping_error(dev, addr) dma_mapping_error(dev, addr) -+#elif KERNEL_VERSION_OR_LATER(2, 6, 27) - #define bm_pci_dma_mapping_error(dev, addr) pci_dma_mapping_error(dev, addr) - #else - #define bm_pci_dma_mapping_error(dev, addr) pci_dma_mapping_error(addr) -@@ -223,8 +225,13 @@ bm_dma_list_t* bm_dma_map_user_buffer(bm_pci_device_t* pci, bm_user_mem_t* umem, - - for (i = 0; i < umem->length; ++i) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ 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])) -+ #else - 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])) -+ #endif - { - bm_dma_unmap_buffer(pci, dlist, dir); - return NULL; -@@ -246,8 +253,13 @@ bm_dma_list_t* bm_dma_map_kernel_buffer(bm_pci_device_t* pci, void* addr, vm_siz - dlist->contig = 1; - dlist->length = size; - -+#if KERNEL_VERSION_OR_LATER(5, 18, 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])) -+#else - dlist->addrs[0] = pci_map_single(pci->pdev, addr, size, dir); - if (bm_pci_dma_mapping_error(pci->pdev, dlist->addrs[0])) -+#endif - { - bm_dma_unmap_buffer(pci, dlist, dir); - return NULL; -@@ -275,8 +287,13 @@ bm_dma_list_t* bm_dma_map_kernel_buffer_vmalloc(bm_pci_device_t* pci, void* addr - for (i = 0; i < n_pages; ++i, offset += PAGE_SIZE) - { - struct page* page = vmalloc_to_page((void*)(aligned_addr + offset)); -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ 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])) -+ #else - dlist->addrs[i] = pci_map_page(pci->pdev, page, 0, PAGE_SIZE, dir); - if (bm_pci_dma_mapping_error(pci->pdev, dlist->addrs[i])) -+ #endif - { - bm_dma_unmap_buffer(pci, dlist, dir); - return NULL; -@@ -292,7 +309,11 @@ void bm_dma_unmap_buffer(bm_pci_device_t* pci, bm_dma_list_t* dlist, bm_dma_dire - size_t i; - if (dlist->contig) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ dma_unmap_single(&pci->pdev->dev, dlist->addrs[0], dlist->length, dir); -+ #else - pci_unmap_single(pci->pdev, dlist->addrs[0], dlist->length, dir); -+ #endif - bm_atomic_sub(&statistics.memory_mapped, dlist->length); - } - else -@@ -301,7 +322,11 @@ void bm_dma_unmap_buffer(bm_pci_device_t* pci, bm_dma_list_t* dlist, bm_dma_dire - { - if (dlist->addrs[i]) - { -+ #if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ dma_unmap_page(&pci->pdev->dev, dlist->addrs[i], PAGE_SIZE, dir); -+ #else - pci_unmap_page(pci->pdev, dlist->addrs[i], PAGE_SIZE, dir); -+ #endif - bm_atomic_sub(&statistics.pages_mapped, 1); - } - } -diff --git a/bm_pci.c b/bm_pci.c -index 7c21e66..7e5be29 100644 ---- a/blackmagic-io-12.3a10/bm_pci.c -+++ b/blackmagic-io-12.3a10/bm_pci.c -@@ -76,11 +76,19 @@ bool bm_pci_start(bm_pci_device_t* pci) - - pci_set_master(pci->pdev); - -+#if KERNEL_VERSION_OR_LATER(5, 18, 0) -+ if (dma_set_mask(&pci->pdev->dev, BM_DMA_64BIT_MASK) < 0) -+ { -+ if (dma_set_mask(&pci->pdev->dev, BM_DMA_32BIT_MASK) < 0) -+ goto bail; -+ } -+#else - if (pci_set_dma_mask(pci->pdev, BM_DMA_64BIT_MASK) < 0) - { - if (pci_set_dma_mask(pci->pdev, BM_DMA_32BIT_MASK) < 0) - goto bail; - } -+#endif - - if (strcmp(default_irq_type, "msi") == 0) - pci_enable_msi(pci->pdev); @@ -2,8 +2,8 @@ pkgbase=decklink pkgname=(decklink mediaexpress) _pkgname=decklink -pkgver=12.3 -pkgrel=2 +pkgver=12.4 +pkgrel=1 pkgdesc="Drivers for Blackmagic Design DeckLink, Intensity or Multibridge video editing cards" arch=('i686' 'x86_64') url="https://www.blackmagicdesign.com/support/family/capture-and-playback" @@ -14,7 +14,7 @@ options=('!strip' 'staticlibs') [ "$CARCH" = "i686" ] && _arch='i386' [ "$CARCH" = "x86_64" ] && _arch='x86_64' -_pkgsrc_url="https://www.blackmagicdesign.com/api/register/us/download/b69591b5747f4522b97925a53b01a712" +_pkgsrc_url="https://www.blackmagicdesign.com/api/register/us/download/bc560d799d5a4ecb87e88c4c0add9ca7" _pkgsrc_file=${_pkgname}-${pkgver}.tar.gz DLAGENTS=("https::/usr/bin/curl \ @@ -30,12 +30,8 @@ DLAGENTS=("https::/usr/bin/curl \ ) source=("${_pkgsrc_file}"::"${_pkgsrc_url}" - "01-blackmagic-dma.patch" - "02-blackmagic-io-dma.patch" ) -sha256sums=('cbf3f8ff384ddab1fbf481f2b1b3be3dd718f5fa4394ab0ae9736935161fd5b0' - '34f4eec30882f51bc62aa560a03a26b9076a28418b5aea961eec54a735ff49bd' - '95ccbf3327440e70b614fac2371ee956dff89cc809915292c6c5bde8191a51fe') +sha256sums=('abf35b48024d4e587ff76c44600b19702540a475054e0982183c3e1951333776') prepare() { cd $srcdir/Blackmagic_Desktop_Video_Linux_$pkgver/other/${_arch} @@ -44,11 +40,11 @@ prepare() { cd desktopvideo-*/usr/src - for p in ${srcdir}/*.patch; - do - echo "Applying ${p}" - patch --forward --strip=1 --input="${p}" - done + # for p in ${srcdir}/*.patch; + # do + # echo "Applying ${p}" + # patch --forward --strip=1 --input="${p}" + # done } |