aboutsummaryrefslogtreecommitdiff
path: root/arch/sparc64/kernel/pci_sun4v_asm.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-19 22:21:32 -0800
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 01:13:41 -0800
commit6a32fd4d0d42258004631dc0ac90665382a2e5dc (patch)
treef2a73240a7cfadfb3097121279b6e5a7651812e5 /arch/sparc64/kernel/pci_sun4v_asm.S
parent04d74758eb7dce6dfb7d2101315827c267ffefc4 (diff)
[SPARC64]: Remove PGLIST_NENTS PCI IOMMU mapping limitation on SUN4V.
Use a batching queue system for IOMMU mapping setup, with a page sized batch. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/pci_sun4v_asm.S')
-rw-r--r--arch/sparc64/kernel/pci_sun4v_asm.S11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/pci_sun4v_asm.S b/arch/sparc64/kernel/pci_sun4v_asm.S
index 424db652664..6604fdbf746 100644
--- a/arch/sparc64/kernel/pci_sun4v_asm.S
+++ b/arch/sparc64/kernel/pci_sun4v_asm.S
@@ -11,14 +11,19 @@
* %o3: io_attributes
* %o4: io_page_list phys address
*
- * returns %o0: num ttes mapped
+ * returns %o0: -status if status was non-zero, else
+ * %o0: num pages mapped
*/
.globl pci_sun4v_iommu_map
pci_sun4v_iommu_map:
+ mov %o5, %g1
mov HV_FAST_PCI_IOMMU_MAP, %o5
ta HV_FAST_TRAP
- retl
- mov %o1, %o0
+ brnz,pn %o0, 1f
+ sub %g0, %o0, %o0
+ mov %o1, %o0
+1: retl
+ nop
/* %o0: devhandle
* %o1: tsbid