packages: clean up the package folder
[openwrt.git] / package / broadcom-wl / patches / 006-generic-dma-api.patch
diff --git a/package/broadcom-wl/patches/006-generic-dma-api.patch b/package/broadcom-wl/patches/006-generic-dma-api.patch
deleted file mode 100644 (file)
index a90bbe1..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From: George Kashperko <george@znau.edu.ua>
-
-broadcom-wl driver bound to ssb device with ssb driver probe
-have osh handle struct pdev pointer value initialized with
-ssb_device pointer. Later on pdev is used with legacy pci
-dma api as pci_dev thus causing oops sometimes.
-
-The patch replaces legacy pci dma api and pass relevant
-device struct pointer to avoid crashes.
-Signed-off-by: George Kashperko <george@znau.edu.ua>
----
- driver/linux_osl.c |   28 +++++++++++++++++++++++-----
- 1 file changed, 23 insertions(+), 5 deletions(-)
---- a/driver/linux_osl.c
-+++ b/driver/linux_osl.c
-@@ -25,6 +25,9 @@
- #include <asm/paccess.h>
- #endif /* mips */
- #include <pcicfg.h>
-+#ifdef CONFIG_SSB
-+#include <linux/ssb/ssb.h>
-+#endif
- #define PCI_CFG_RETRY                 10
-@@ -364,12 +367,27 @@ osl_dma_consistent_align(void)
-       return (PAGE_SIZE);
- }
-+static struct device *
-+osl_get_dmadev(osl_t *osh)
-+{
-+#ifdef CONFIG_SSB
-+      if (osh->bustype == SI_BUS) {
-+              /* This can be SiliconBackplane emulated as pci with Broadcom or
-+               * ssb device. Less harmful is to check for pci_bus_type and if
-+               * no match then assume we got ssb */
-+              if (((struct pci_dev *)osh->pdev)->dev.bus != &pci_bus_type)
-+                      return ((struct ssb_device *)osh->pdev)->dma_dev;
-+      }
-+#endif
-+      return &((struct pci_dev *)osh->pdev)->dev;
-+}
-+
- void*
- osl_dma_alloc_consistent(osl_t *osh, uint size, ulong *pap)
- {
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
--      return (pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap));
-+      return (dma_alloc_coherent(osl_get_dmadev(osh), size, (dma_addr_t*)pap, GFP_ATOMIC));
- }
- void
-@@ -377,7 +395,7 @@ osl_dma_free_consistent(osl_t *osh, void
- {
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
--      pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa);
-+      dma_free_coherent(osl_get_dmadev(osh), size, va, (dma_addr_t)pa);
- }
- uint BCMFASTPATH
-@@ -386,13 +404,13 @@ osl_dma_map(osl_t *osh, void *va, uint s
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
-       if (direction == DMA_TX)
--              return (pci_map_single(osh->pdev, va, size, PCI_DMA_TODEVICE));
-+              return (dma_map_single(osl_get_dmadev(osh), va, size, PCI_DMA_TODEVICE));
-       else {
- #ifdef mips
-               dma_cache_inv((uint)va, size);
-               return (virt_to_phys(va));
- #else /* mips */
--              return (pci_map_single(osh->pdev, va, size, PCI_DMA_FROMDEVICE));
-+              return (dma_map_single(osl_get_dmadev(osh), va, size, PCI_DMA_FROMDEVICE));
- #endif /* mips */
-       }
- }
-@@ -404,7 +422,7 @@ osl_dma_unmap(osl_t *osh, uint pa, uint 
-       ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
-       dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
--      pci_unmap_single(osh->pdev, (uint32)pa, size, dir);
-+      dma_unmap_single(osl_get_dmadev(osh), (uint32)pa, size, dir);
- }