diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-20 01:21:32 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:13:41 -0500 |
commit | 6a32fd4d0d42258004631dc0ac90665382a2e5dc (patch) | |
tree | f2a73240a7cfadfb3097121279b6e5a7651812e5 /arch/sparc64/kernel/pci_sun4v_asm.S | |
parent | 04d74758eb7dce6dfb7d2101315827c267ffefc4 (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.S | 11 |
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 |
17 | pci_sun4v_iommu_map: | 18 | pci_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 | ||
25 | 1: retl | ||
26 | nop | ||
22 | 27 | ||
23 | /* %o0: devhandle | 28 | /* %o0: devhandle |
24 | * %o1: tsbid | 29 | * %o1: tsbid |