Commit 819508d3 authored by Joerg Roedel's avatar Joerg Roedel

x86, irq: Add data structure to keep AMD specific irq remapping information

Add a data structure to store information the IOMMU driver
can use to get from a 'struct irq_cfg' to the remapping
entry.
Signed-off-by: default avatarJoerg Roedel <joro@8bytes.org>
Acked-by: default avatarSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 078e1ee2
...@@ -101,6 +101,7 @@ static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr, ...@@ -101,6 +101,7 @@ static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr,
irq_attr->polarity = polarity; irq_attr->polarity = polarity;
} }
/* Intel specific interrupt remapping information */
struct irq_2_iommu { struct irq_2_iommu {
struct intel_iommu *iommu; struct intel_iommu *iommu;
u16 irte_index; u16 irte_index;
...@@ -108,6 +109,12 @@ struct irq_2_iommu { ...@@ -108,6 +109,12 @@ struct irq_2_iommu {
u8 irte_mask; u8 irte_mask;
}; };
/* AMD specific interrupt remapping information */
struct irq_2_irte {
u16 devid; /* Device ID for IRTE table */
u16 index; /* Index into IRTE table*/
};
/* /*
* This is performance-critical, we want to do it O(1) * This is performance-critical, we want to do it O(1)
* *
...@@ -120,7 +127,10 @@ struct irq_cfg { ...@@ -120,7 +127,10 @@ struct irq_cfg {
u8 vector; u8 vector;
u8 move_in_progress : 1; u8 move_in_progress : 1;
#ifdef CONFIG_IRQ_REMAP #ifdef CONFIG_IRQ_REMAP
union {
struct irq_2_iommu irq_2_iommu; struct irq_2_iommu irq_2_iommu;
struct irq_2_irte irq_2_irte;
};
#endif #endif
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment