patch-2.4.10 linux/arch/mips/kernel/pci-dma.c
Next file: linux/arch/mips/kernel/pci.c
Previous file: linux/arch/mips/kernel/old-time.c
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Sun Sep 9 10:43:01 2001
- Orig file:
v2.4.9/linux/arch/mips/kernel/pci-dma.c
- Orig date:
Tue Jul 3 17:08:18 2001
diff -u --recursive --new-file v2.4.9/linux/arch/mips/kernel/pci-dma.c linux/arch/mips/kernel/pci-dma.c
@@ -4,9 +4,10 @@
* for more details.
*
* Copyright (C) 2000 Ani Joshi <ajoshi@unixbox.com>
- * Copyright (C) 2000 Ralf Baechle <ralf@gnu.org>
+ * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org>
* swiped from i386, and cloned for MIPS by Geert, polished by Ralf.
*/
+#include <linux/config.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/string.h>
@@ -26,9 +27,11 @@
if (ret != NULL) {
memset(ret, 0, size);
+#ifndef CONFIG_COHERENT_IO
dma_cache_wback_inv((unsigned long) ret, size);
- *dma_handle = virt_to_bus(ret);
ret = KSEG1ADDR(ret);
+#endif
+ *dma_handle = virt_to_bus(ret);
}
return ret;
@@ -37,5 +40,10 @@
void pci_free_consistent(struct pci_dev *hwdev, size_t size,
void *vaddr, dma_addr_t dma_handle)
{
- free_pages((unsigned long) KSEG0ADDR(vaddr), get_order(size));
+ unsigned long addr = (unsigned long) vaddr;
+
+#ifndef CONFIG_COHERENT_IO
+ addr = KSEG0ADDR(addr);
+#endif
+ free_pages(addr, get_order(size));
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)