]> err.no Git - linux-2.6/blob - arch/sparc64/kernel/pci_sun4v_asm.S
[SPARC64]: More SUN4V PCI controller work.
[linux-2.6] / arch / sparc64 / kernel / pci_sun4v_asm.S
1 /* pci_sun4v_asm: Hypervisor calls for PCI support.
2  *
3  * Copyright (C) 2006 David S. Miller <davem@davemloft.net>
4  */
5
6 #include <asm/hypervisor.h>
7
8         /* %o0: devhandle
9          * %o1: devino
10          *
11          * returns %o0: sysino
12          */
13         .globl  pci_sun4v_devino_to_sysino
14 pci_sun4v_devino_to_sysino:
15         mov     %o1, %o2
16         mov     %o0, %o1
17         mov     HV_FAST_INTR_DEVINO2SYSINO, %o0
18         ta      HV_FAST_TRAP
19         retl
20          mov    %o1, %o0
21
22         /* %o0: devhandle
23          * %o1: tsbid
24          * %o2: num ttes
25          * %o3: io_attributes
26          * %o4: io_page_list phys address
27          *
28          * returns %o0: num ttes mapped
29          */
30         .globl  pci_sun4v_iommu_map
31 pci_sun4v_iommu_map:
32         mov     %o4, %o5
33         mov     %o3, %o4
34         mov     %o2, %o3
35         mov     %o1, %o2
36         mov     %o0, %o1
37         mov     HV_FAST_PCI_IOMMU_MAP, %o0
38         ta      HV_FAST_TRAP
39         retl
40          mov    %o1, %o0
41
42         /* %o0: devhandle
43          * %o1: tsbid
44          * %o2: num ttes
45          *
46          * returns %o0: num ttes demapped
47          */
48         .globl  pci_sun4v_iommu_demap
49 pci_sun4v_iommu_demap:
50         mov     %o2, %o3
51         mov     %o1, %o2
52         mov     %o0, %o1
53         mov     HV_FAST_PCI_IOMMU_DEMAP, %o0
54         ta      HV_FAST_TRAP
55         retl
56          mov    %o1, %o0