diff options
Diffstat (limited to '01-blackmagic-dma.patch')
-rw-r--r-- | 01-blackmagic-dma.patch | 118 |
1 files changed, 0 insertions, 118 deletions
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); - } |