msi.c (2a85386a73fa57b114ba66421b57d3850dbcef9f) msi.c (c201c91799d687c0a6d8c3272950f51aad5ffebe)
1/*
2 * Support of MSI, HPET and DMAR interrupts.
3 *
4 * Copyright (C) 1997, 1998, 1999, 2000, 2009 Ingo Molnar, Hajnalka Szabo
5 * Moved from arch/x86/kernel/apic/io_apic.c.
6 * Jiang Liu <jiang.liu@linux.intel.com>
7 * Convert to hierarchical irqdomain
8 *

--- 115 unchanged lines hidden (view full) ---

124static struct msi_domain_ops pci_msi_domain_ops = {
125 .get_hwirq = pci_msi_get_hwirq,
126 .msi_prepare = pci_msi_prepare,
127 .set_desc = pci_msi_set_desc,
128};
129
130static struct msi_domain_info pci_msi_domain_info = {
131 .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
1/*
2 * Support of MSI, HPET and DMAR interrupts.
3 *
4 * Copyright (C) 1997, 1998, 1999, 2000, 2009 Ingo Molnar, Hajnalka Szabo
5 * Moved from arch/x86/kernel/apic/io_apic.c.
6 * Jiang Liu <jiang.liu@linux.intel.com>
7 * Convert to hierarchical irqdomain
8 *

--- 115 unchanged lines hidden (view full) ---

124static struct msi_domain_ops pci_msi_domain_ops = {
125 .get_hwirq = pci_msi_get_hwirq,
126 .msi_prepare = pci_msi_prepare,
127 .set_desc = pci_msi_set_desc,
128};
129
130static struct msi_domain_info pci_msi_domain_info = {
131 .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
132 MSI_FLAG_PCI_MSIX | MSI_FLAG_MUST_REACTIVATE,
132 MSI_FLAG_PCI_MSIX,
133 .ops = &pci_msi_domain_ops,
134 .chip = &pci_msi_controller,
135 .handler = handle_edge_irq,
136 .handler_name = "edge",
137};
138
139void __init arch_init_msi_domain(struct irq_domain *parent)
140{

--- 21 unchanged lines hidden (view full) ---

162 .irq_ack = irq_chip_ack_parent,
163 .irq_retrigger = irq_chip_retrigger_hierarchy,
164 .irq_set_vcpu_affinity = irq_chip_set_vcpu_affinity_parent,
165 .flags = IRQCHIP_SKIP_SET_WAKE,
166};
167
168static struct msi_domain_info pci_msi_ir_domain_info = {
169 .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
133 .ops = &pci_msi_domain_ops,
134 .chip = &pci_msi_controller,
135 .handler = handle_edge_irq,
136 .handler_name = "edge",
137};
138
139void __init arch_init_msi_domain(struct irq_domain *parent)
140{

--- 21 unchanged lines hidden (view full) ---

162 .irq_ack = irq_chip_ack_parent,
163 .irq_retrigger = irq_chip_retrigger_hierarchy,
164 .irq_set_vcpu_affinity = irq_chip_set_vcpu_affinity_parent,
165 .flags = IRQCHIP_SKIP_SET_WAKE,
166};
167
168static struct msi_domain_info pci_msi_ir_domain_info = {
169 .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
170 MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX |
171 MSI_FLAG_MUST_REACTIVATE,
170 MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX,
172 .ops = &pci_msi_domain_ops,
173 .chip = &pci_msi_ir_controller,
174 .handler = handle_edge_irq,
175 .handler_name = "edge",
176};
177
178struct irq_domain *arch_create_remap_msi_irq_domain(struct irq_domain *parent,
179 const char *name, int id)

--- 214 unchanged lines hidden ---
171 .ops = &pci_msi_domain_ops,
172 .chip = &pci_msi_ir_controller,
173 .handler = handle_edge_irq,
174 .handler_name = "edge",
175};
176
177struct irq_domain *arch_create_remap_msi_irq_domain(struct irq_domain *parent,
178 const char *name, int id)

--- 214 unchanged lines hidden ---