aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/pci_sun4v_asm.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-20 01:21:32 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:13:41 -0500
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 424db6526648..6604fdbf746c 100644
--- a/arch/sparc64/kernel/pci_sun4v_asm.S
+++ b/arch/sparc64/kernel/pci_sun4v_asm.S
@@ -11,14 +11,19 @@
11 * %o3: io_attributes 11 * %o3: io_attributes
12 * %o4: io_page_list phys address 12 * %o4: io_page_list phys address
13 * 13 *
14 * returns %o0: num ttes mapped 14 * returns %o0: -status if status was non-zero, else
15 * %o0: num pages mapped
15 */ 16 */
16 .globl pci_sun4v_iommu_map 17 .globl pci_sun4v_iommu_map
17pci_sun4v_iommu_map: 18pci_sun4v_iommu_map:
19 mov %o5, %g1
18 mov HV_FAST_PCI_IOMMU_MAP, %o5 20 mov HV_FAST_PCI_IOMMU_MAP, %o5
19 ta HV_FAST_TRAP 21 ta HV_FAST_TRAP
20 retl 22 brnz,pn %o0, 1f
21 mov %o1, %o0 23 sub %g0, %o0, %o0
24 mov %o1, %o0
251: retl
26 nop
22 27
23 /* %o0: devhandle 28 /* %o0: devhandle
24 * %o1: tsbid 29 * %o1: tsbid