1 /* 2 * Copyright (C) 2009-2010 Advanced Micro Devices, Inc. 3 * Author: Joerg Roedel <joerg.roedel@amd.com> 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 as published 7 * by the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 */ 18 19 #ifndef _ASM_X86_AMD_IOMMU_PROTO_H 20 #define _ASM_X86_AMD_IOMMU_PROTO_H 21 22 struct amd_iommu; 23 24 extern int amd_iommu_init_dma_ops(void); 25 extern int amd_iommu_init_passthrough(void); 26 extern irqreturn_t amd_iommu_int_handler(int irq, void *data); 27 extern void amd_iommu_flush_all_domains(void); 28 extern void amd_iommu_flush_all_devices(void); 29 extern void amd_iommu_apply_erratum_63(u16 devid); 30 extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu); 31 extern int amd_iommu_init_devices(void); 32 extern void amd_iommu_uninit_devices(void); 33 extern void amd_iommu_init_notifier(void); 34 extern void amd_iommu_init_api(void); 35 #ifndef CONFIG_AMD_IOMMU_STATS 36 amd_iommu_stats_init(void)37static inline void amd_iommu_stats_init(void) { } 38 39 #endif /* !CONFIG_AMD_IOMMU_STATS */ 40 is_rd890_iommu(struct pci_dev * pdev)41static inline bool is_rd890_iommu(struct pci_dev *pdev) 42 { 43 return (pdev->vendor == PCI_VENDOR_ID_ATI) && 44 (pdev->device == PCI_DEVICE_ID_RD890_IOMMU); 45 } 46 47 #endif /* _ASM_X86_AMD_IOMMU_PROTO_H */ 48