Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

external-kernel-drivers: Commit

external/kernel-drivers


Commit MetaInfo

Revisionae4f43e91d65671660e2c58667e0df97ff4e8bf2 (tree)
Time2022-04-18 03:50:24
AuthorMauro Rossi <issor.oruam@gmai...>
CommiterMauro Rossi

Log Message

wl: fix build with kernel 5.18

Changes due to kernel 5.18 commit
7968778914e ('PCI: Remove the deprecated "pci-dma-compat.h" API')

Change Summary

Incremental Difference

--- /dev/null
+++ b/wl/wl-kmod-023_kernel_5.18_pci-dma-compat_API_removed.patch
@@ -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)
Show on old repository browser