mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 13:04:03 +08:00
4505153954
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 136 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.384967451@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2012 Advanced Micro Devices, Inc.
|
|
* Author: Joerg Roedel <jroedel@suse.de>
|
|
*
|
|
* This header file contains stuff that is shared between different interrupt
|
|
* remapping drivers but with no need to be visible outside of the IOMMU layer.
|
|
*/
|
|
|
|
#ifndef __IRQ_REMAPPING_H
|
|
#define __IRQ_REMAPPING_H
|
|
|
|
#ifdef CONFIG_IRQ_REMAP
|
|
|
|
struct irq_data;
|
|
struct msi_msg;
|
|
struct irq_domain;
|
|
struct irq_alloc_info;
|
|
|
|
extern int irq_remap_broken;
|
|
extern int disable_sourceid_checking;
|
|
extern int no_x2apic_optout;
|
|
extern int irq_remapping_enabled;
|
|
|
|
extern int disable_irq_post;
|
|
|
|
struct irq_remap_ops {
|
|
/* The supported capabilities */
|
|
int capability;
|
|
|
|
/* Initializes hardware and makes it ready for remapping interrupts */
|
|
int (*prepare)(void);
|
|
|
|
/* Enables the remapping hardware */
|
|
int (*enable)(void);
|
|
|
|
/* Disables the remapping hardware */
|
|
void (*disable)(void);
|
|
|
|
/* Reenables the remapping hardware */
|
|
int (*reenable)(int);
|
|
|
|
/* Enable fault handling */
|
|
int (*enable_faulting)(void);
|
|
|
|
/* Get the irqdomain associated the IOMMU device */
|
|
struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *);
|
|
|
|
/* Get the MSI irqdomain associated with the IOMMU device */
|
|
struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *);
|
|
};
|
|
|
|
extern struct irq_remap_ops intel_irq_remap_ops;
|
|
extern struct irq_remap_ops amd_iommu_irq_ops;
|
|
extern struct irq_remap_ops hyperv_irq_remap_ops;
|
|
|
|
#else /* CONFIG_IRQ_REMAP */
|
|
|
|
#define irq_remapping_enabled 0
|
|
#define irq_remap_broken 0
|
|
#define disable_irq_post 1
|
|
|
|
#endif /* CONFIG_IRQ_REMAP */
|
|
|
|
#endif /* __IRQ_REMAPPING_H */
|