mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
update madwifi to latest trunk, include a few more fixes/improvements
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10294 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
82
package/madwifi/patches/326-soc_dma.patch
Normal file
82
package/madwifi/patches/326-soc_dma.patch
Normal file
@@ -0,0 +1,82 @@
|
||||
Index: madwifi-trunk-r3280/ath/if_ath_ahb.c
|
||||
===================================================================
|
||||
--- madwifi-trunk-r3280.orig/ath/if_ath_ahb.c 2008-01-28 19:12:37.022826852 +0100
|
||||
+++ madwifi-trunk-r3280/ath/if_ath_ahb.c 2008-01-28 19:31:09.184472483 +0100
|
||||
@@ -69,27 +69,13 @@
|
||||
void *
|
||||
bus_alloc_consistent(void *hwdev, size_t size, dma_addr_t *dma_handle)
|
||||
{
|
||||
- void *ret;
|
||||
-
|
||||
- ret = (void *) __get_free_pages(GFP_ATOMIC, get_order(size));
|
||||
-
|
||||
- if (ret != NULL) {
|
||||
- memset(ret, 0, size);
|
||||
- *dma_handle = __pa(ret);
|
||||
- dma_cache_wback_inv((unsigned long) ret, size);
|
||||
- ret = UNCAC_ADDR(ret);
|
||||
- }
|
||||
-
|
||||
- return ret;
|
||||
+ return dma_alloc_coherent(hwdev, size, dma_handle, GFP_ATOMIC);
|
||||
}
|
||||
|
||||
void
|
||||
bus_free_consistent(void *hwdev, size_t size, void *vaddr, dma_addr_t dma_handle)
|
||||
{
|
||||
- unsigned long addr = (unsigned long) vaddr;
|
||||
-
|
||||
- addr = CAC_ADDR(addr);
|
||||
- free_pages(addr, get_order(size));
|
||||
+ dma_free_coherent(hwdev, size, vaddr, dma_handle);
|
||||
}
|
||||
|
||||
static int
|
||||
Index: madwifi-trunk-r3280/ath/if_ath_ahb.h
|
||||
===================================================================
|
||||
--- madwifi-trunk-r3280.orig/ath/if_ath_ahb.h 2008-01-28 19:20:06.016413537 +0100
|
||||
+++ madwifi-trunk-r3280/ath/if_ath_ahb.h 2008-01-28 19:30:40.978865135 +0100
|
||||
@@ -89,8 +89,8 @@
|
||||
#define AR531X_RADIO1_MASK 0x000c
|
||||
#define AR531X_RADIO1_S 2
|
||||
|
||||
-#define BUS_DMA_FROMDEVICE 0
|
||||
-#define BUS_DMA_TODEVICE 1
|
||||
+#define BUS_DMA_FROMDEVICE DMA_FROM_DEVICE
|
||||
+#define BUS_DMA_TODEVICE DMA_TO_DEVICE
|
||||
|
||||
#define AR531X_APBBASE 0xbc000000
|
||||
#define AR531X_RESETTMR (AR531X_APBBASE + 0x3000)
|
||||
@@ -115,29 +115,19 @@
|
||||
static __inline void bus_dma_sync_single(void *hwdev, dma_addr_t dma_handle,
|
||||
size_t size, int direction)
|
||||
{
|
||||
- unsigned long addr;
|
||||
-
|
||||
- addr = (unsigned long) __va(dma_handle);
|
||||
- dma_cache_wback_inv(addr, size);
|
||||
+ dma_sync_single(hwdev, dma_handle, size, direction);
|
||||
}
|
||||
|
||||
static __inline dma_addr_t bus_map_single(void *hwdev, void *ptr,
|
||||
size_t size, int direction)
|
||||
{
|
||||
- dma_cache_wback_inv((unsigned long) ptr, size);
|
||||
-
|
||||
- return __pa(ptr);
|
||||
+ return dma_map_single(hwdev, ptr, size, direction);
|
||||
}
|
||||
|
||||
static __inline void bus_unmap_single(void *hwdev, dma_addr_t dma_addr,
|
||||
size_t size, int direction)
|
||||
{
|
||||
- if (direction != BUS_DMA_TODEVICE) {
|
||||
- unsigned long addr;
|
||||
-
|
||||
- addr = (unsigned long)__va(dma_addr);
|
||||
- dma_cache_wback_inv(addr, size);
|
||||
- }
|
||||
+ dma_unmap_single(hwdev, dma_addr, size, direction);
|
||||
}
|
||||
void *bus_alloc_consistent(void *, size_t, dma_addr_t *);
|
||||
void bus_free_consistent(void *, size_t, void *, dma_addr_t);
|
||||
Reference in New Issue
Block a user