diff options
Diffstat (limited to 'include/linux/amd-iommu.h')
| -rw-r--r-- | include/linux/amd-iommu.h | 23 | 
1 files changed, 22 insertions, 1 deletions
diff --git a/include/linux/amd-iommu.h b/include/linux/amd-iommu.h index 4152c3073db..e8c7a2ec86b 100644 --- a/include/linux/amd-iommu.h +++ b/include/linux/amd-iommu.h @@ -20,10 +20,12 @@  #ifndef _ASM_X86_AMD_IOMMU_H  #define _ASM_X86_AMD_IOMMU_H -#include <linux/irqreturn.h> +#include <linux/types.h>  #ifdef CONFIG_AMD_IOMMU +struct pci_dev; +  extern int amd_iommu_detect(void); @@ -33,6 +35,7 @@ extern int amd_iommu_detect(void);   * @pdev: The PCI device the workaround is necessary for   * @erratum: The erratum workaround to enable   * + * The function needs to be called before amd_iommu_init_device().   * Possible values for the erratum number are for now:   * - AMD_PRI_DEV_ERRATUM_ENABLE_RESET - Reset PRI capability when PRI   *					is enabled @@ -44,6 +47,24 @@ extern int amd_iommu_detect(void);  extern void amd_iommu_enable_device_erratum(struct pci_dev *pdev, u32 erratum); +/** + * amd_iommu_init_device() - Init device for use with IOMMUv2 driver + * @pdev: The PCI device to initialize + * @pasids: Number of PASIDs to support for this device + * + * This function does all setup for the device pdev so that it can be + * used with IOMMUv2. + * Returns 0 on success or negative value on error. + */ +extern int amd_iommu_init_device(struct pci_dev *pdev, int pasids); + +/** + * amd_iommu_free_device() - Free all IOMMUv2 related device resources + *			     and disable IOMMUv2 usage for this device + * @pdev: The PCI device to disable IOMMUv2 usage for' + */ +extern void amd_iommu_free_device(struct pci_dev *pdev); +  #else  static inline int amd_iommu_detect(void) { return -ENODEV; }  |