pci_sun4v.h (4247B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* pci_sun4v.h: SUN4V specific PCI controller support. 3 * 4 * Copyright (C) 2006 David S. Miller (davem@davemloft.net) 5 */ 6 7#ifndef _PCI_SUN4V_H 8#define _PCI_SUN4V_H 9 10long pci_sun4v_iommu_map(unsigned long devhandle, 11 unsigned long tsbid, 12 unsigned long num_ttes, 13 unsigned long io_attributes, 14 unsigned long io_page_list_pa); 15unsigned long pci_sun4v_iommu_demap(unsigned long devhandle, 16 unsigned long tsbid, 17 unsigned long num_ttes); 18unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle, 19 unsigned long tsbid, 20 unsigned long *io_attributes, 21 unsigned long *real_address); 22unsigned long pci_sun4v_config_get(unsigned long devhandle, 23 unsigned long pci_device, 24 unsigned long config_offset, 25 unsigned long size); 26int pci_sun4v_config_put(unsigned long devhandle, 27 unsigned long pci_device, 28 unsigned long config_offset, 29 unsigned long size, 30 unsigned long data); 31 32unsigned long pci_sun4v_msiq_conf(unsigned long devhandle, 33 unsigned long msiqid, 34 unsigned long msiq_paddr, 35 unsigned long num_entries); 36unsigned long pci_sun4v_msiq_info(unsigned long devhandle, 37 unsigned long msiqid, 38 unsigned long *msiq_paddr, 39 unsigned long *num_entries); 40unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle, 41 unsigned long msiqid, 42 unsigned long *valid); 43unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle, 44 unsigned long msiqid, 45 unsigned long valid); 46unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle, 47 unsigned long msiqid, 48 unsigned long *state); 49unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle, 50 unsigned long msiqid, 51 unsigned long state); 52unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle, 53 unsigned long msiqid, 54 unsigned long *head); 55unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle, 56 unsigned long msiqid, 57 unsigned long head); 58unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle, 59 unsigned long msiqid, 60 unsigned long *head); 61unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle, 62 unsigned long msinum, 63 unsigned long *valid); 64unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle, 65 unsigned long msinum, 66 unsigned long valid); 67unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle, 68 unsigned long msinum, 69 unsigned long *msiq); 70unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle, 71 unsigned long msinum, 72 unsigned long msiq, 73 unsigned long msitype); 74unsigned long pci_sun4v_msi_getstate(unsigned long devhandle, 75 unsigned long msinum, 76 unsigned long *state); 77unsigned long pci_sun4v_msi_setstate(unsigned long devhandle, 78 unsigned long msinum, 79 unsigned long state); 80unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle, 81 unsigned long msinum, 82 unsigned long *msiq); 83unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle, 84 unsigned long msinum, 85 unsigned long msiq); 86unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle, 87 unsigned long msinum, 88 unsigned long *valid); 89unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle, 90 unsigned long msinum, 91 unsigned long valid); 92 93/* Sun4v HV IOMMU v2 APIs */ 94unsigned long pci_sun4v_iotsb_conf(unsigned long devhandle, 95 unsigned long ra, 96 unsigned long table_size, 97 unsigned long page_size, 98 unsigned long dvma_base, 99 u64 *iotsb_num); 100unsigned long pci_sun4v_iotsb_bind(unsigned long devhandle, 101 unsigned long iotsb_num, 102 unsigned int pci_device); 103unsigned long pci_sun4v_iotsb_map(unsigned long devhandle, 104 unsigned long iotsb_num, 105 unsigned long iotsb_index_iottes, 106 unsigned long io_attributes, 107 unsigned long io_page_list_pa, 108 long *mapped); 109unsigned long pci_sun4v_iotsb_demap(unsigned long devhandle, 110 unsigned long iotsb_num, 111 unsigned long iotsb_index, 112 unsigned long iottes, 113 unsigned long *demapped); 114#endif /* !(_PCI_SUN4V_H) */