external/kernel-drivers
修訂 | ae4f43e91d65671660e2c58667e0df97ff4e8bf2 (tree) |
---|---|
時間 | 2022-04-18 03:50:24 |
作者 | Mauro Rossi <issor.oruam@gmai...> |
Commiter | Mauro Rossi |
wl: fix build with kernel 5.18
Changes due to kernel 5.18 commit
7968778914e ('PCI: Remove the deprecated "pci-dma-compat.h" API')
@@ -0,0 +1,90 @@ | ||
1 | +diff -Naur hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c | |
2 | +--- hybrid-v35_64-nodebug-pcoem-6_30_223_271.orig/src/shared/linux_osl.c 2018-04-18 13:53:37.484164000 +0200 | |
3 | ++++ hybrid-v35_64-nodebug-pcoem-6_30_223_271/src/shared/linux_osl.c 2022-04-16 23:18:36.154395810 +0100 | |
4 | +@@ -599,8 +599,12 @@ osl_dma_alloc_consistent(osl_t *osh, uint size, uint16 align_bits, uint *alloced | |
5 | + va = kmalloc(size, GFP_ATOMIC | __GFP_ZERO); | |
6 | + if (va) | |
7 | + *pap = (ulong)__virt_to_phys(va); | |
8 | ++#else | |
9 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
10 | ++ va = dma_alloc_coherent(&to_pci_dev(osh->pdev)->dev, size, (dma_addr_t*)pap, GFP_KERNEL); | |
11 | + #else | |
12 | + va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap); | |
13 | ++#endif | |
14 | + #endif | |
15 | + return va; | |
16 | + } | |
17 | +@@ -612,9 +616,13 @@ osl_dma_free_consistent(osl_t *osh, void *va, uint size, ulong pa) | |
18 | + | |
19 | + #ifdef __ARM_ARCH_7A__ | |
20 | + kfree(va); | |
21 | ++#else | |
22 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
23 | ++ dma_free_coherent(&to_pci_dev(osh->pdev)->dev, size, va, (dma_addr_t)pa); | |
24 | + #else | |
25 | + pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa); | |
26 | + #endif | |
27 | ++#endif | |
28 | + } | |
29 | + | |
30 | + uint BCMFASTPATH | |
31 | +@@ -623,7 +631,11 @@ osl_dma_map(osl_t *osh, void *va, uint size, int direction, void *p, hnddma_seg_ | |
32 | + int dir; | |
33 | + | |
34 | + ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); | |
35 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
36 | ++ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; | |
37 | ++#else | |
38 | + dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; | |
39 | ++#endif | |
40 | + | |
41 | + #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL) | |
42 | + if (dmah != NULL) { | |
43 | +@@ -635,13 +647,21 @@ osl_dma_map(osl_t *osh, void *va, uint size, int direction, void *p, hnddma_seg_ | |
44 | + if (skb_is_nonlinear(skb)) { | |
45 | + nsegs = skb_to_sgvec(skb, sg, 0, PKTLEN(osh, skb)); | |
46 | + ASSERT((nsegs > 0) && (totsegs + nsegs <= MAX_DMA_SEGS)); | |
47 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
48 | ++ pdma_map_sg(&to_pci_dev(osh->pdev)->dev, sg, nsegs, dir); | |
49 | ++#else | |
50 | + pci_map_sg(osh->pdev, sg, nsegs, dir); | |
51 | ++#endif | |
52 | + } else { | |
53 | + nsegs = 1; | |
54 | + ASSERT(totsegs + nsegs <= MAX_DMA_SEGS); | |
55 | + sg->page_link = 0; | |
56 | + sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb)); | |
57 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
58 | ++ dma_map_single(&to_pci_dev(osh->pdev)->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); | |
59 | ++#else | |
60 | + pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir); | |
61 | ++#endif | |
62 | + } | |
63 | + totsegs += nsegs; | |
64 | + totlen += PKTLEN(osh, skb); | |
65 | +@@ -656,7 +676,11 @@ osl_dma_map(osl_t *osh, void *va, uint size, int direction, void *p, hnddma_seg_ | |
66 | + } | |
67 | + #endif | |
68 | + | |
69 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
70 | ++ return (dma_map_single(&to_pci_dev(osh->pdev)->dev, va, size, dir)); | |
71 | ++#else | |
72 | + return (pci_map_single(osh->pdev, va, size, dir)); | |
73 | ++#endif | |
74 | + } | |
75 | + | |
76 | + void BCMFASTPATH | |
77 | +@@ -665,8 +689,13 @@ osl_dma_unmap(osl_t *osh, uint pa, uint size, int direction) | |
78 | + int dir; | |
79 | + | |
80 | + ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); | |
81 | ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) | |
82 | ++ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE; | |
83 | ++ dma_unmap_single(&to_pci_dev(osh->pdev)->dev, (uint32)pa, size, dir); | |
84 | ++#else | |
85 | + dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE; | |
86 | + pci_unmap_single(osh->pdev, (uint32)pa, size, dir); | |
87 | ++#endif | |
88 | + } | |
89 | + | |
90 | + #if defined(BCMDBG_ASSERT) |