The following commit has been merged into the x86/irq branch of tip:

Commit-ID:     2bf1e7bcedb8802cb4fc65757b229edfe112a4bb
Gitweb:        
https://git.kernel.org/tip/2bf1e7bcedb8802cb4fc65757b229edfe112a4bb
Author:        Thomas Gleixner <[email protected]>
AuthorDate:    Wed, 26 Aug 2020 13:16:41 +02:00
Committer:     Thomas Gleixner <[email protected]>
CommitterDate: Wed, 16 Sep 2020 16:52:31 +02:00

x86/msi: Consolidate HPET allocation

None of the magic HPET fields are required in any way.

Signed-off-by: Thomas Gleixner <[email protected]>
Acked-by: Joerg Roedel <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
 arch/x86/include/asm/hw_irq.h       |  7 -------
 arch/x86/kernel/apic/msi.c          | 14 +++++++-------
 drivers/iommu/amd/iommu.c           |  2 +-
 drivers/iommu/intel/irq_remapping.c |  4 ++--
 4 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index b0e15f6..2d39e61 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -65,13 +65,6 @@ struct irq_alloc_info {
 
        union {
                int             unused;
-#ifdef CONFIG_HPET_TIMER
-               struct {
-                       int             hpet_id;
-                       int             hpet_index;
-                       void            *hpet_data;
-               };
-#endif
 #ifdef CONFIG_PCI_MSI
                struct {
                        struct pci_dev  *msi_dev;
diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
index 9edb1bb..da68d08 100644
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -423,7 +423,7 @@ static struct irq_chip hpet_msi_controller __ro_after_init 
= {
 static irq_hw_number_t hpet_msi_get_hwirq(struct msi_domain_info *info,
                                          msi_alloc_info_t *arg)
 {
-       return arg->hpet_index;
+       return arg->hwirq;
 }
 
 static int hpet_msi_init(struct irq_domain *domain,
@@ -431,8 +431,8 @@ static int hpet_msi_init(struct irq_domain *domain,
                         irq_hw_number_t hwirq, msi_alloc_info_t *arg)
 {
        irq_set_status_flags(virq, IRQ_MOVE_PCNTXT);
-       irq_domain_set_info(domain, virq, arg->hpet_index, info->chip, NULL,
-                           handle_edge_irq, arg->hpet_data, "edge");
+       irq_domain_set_info(domain, virq, arg->hwirq, info->chip, NULL,
+                           handle_edge_irq, arg->data, "edge");
 
        return 0;
 }
@@ -473,7 +473,7 @@ struct irq_domain *hpet_create_irq_domain(int hpet_id)
 
        init_irq_alloc_info(&info, NULL);
        info.type = X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT;
-       info.hpet_id = hpet_id;
+       info.devid = hpet_id;
        parent = irq_remapping_get_irq_domain(&info);
        if (parent == NULL)
                parent = x86_vector_domain;
@@ -502,9 +502,9 @@ int hpet_assign_irq(struct irq_domain *domain, struct 
hpet_channel *hc,
 
        init_irq_alloc_info(&info, NULL);
        info.type = X86_IRQ_ALLOC_TYPE_HPET;
-       info.hpet_data = hc;
-       info.hpet_id = hpet_dev_id(domain);
-       info.hpet_index = dev_num;
+       info.data = hc;
+       info.devid = hpet_dev_id(domain);
+       info.hwirq = dev_num;
 
        return irq_domain_alloc_irqs(domain, 1, NUMA_NO_NODE, &info);
 }
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 18b4dfb..a308472 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -3525,7 +3525,7 @@ static int get_devid(struct irq_alloc_info *info)
                return get_ioapic_devid(info->ioapic_id);
        case X86_IRQ_ALLOC_TYPE_HPET:
        case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT:
-               return get_hpet_devid(info->hpet_id);
+               return get_hpet_devid(info->devid);
        case X86_IRQ_ALLOC_TYPE_PCI_MSI:
        case X86_IRQ_ALLOC_TYPE_PCI_MSIX:
                return get_device_id(&info->msi_dev->dev);
diff --git a/drivers/iommu/intel/irq_remapping.c 
b/drivers/iommu/intel/irq_remapping.c
index 0289a78..58c2d7a 100644
--- a/drivers/iommu/intel/irq_remapping.c
+++ b/drivers/iommu/intel/irq_remapping.c
@@ -1121,7 +1121,7 @@ static struct irq_domain *intel_get_irq_domain(struct 
irq_alloc_info *info)
        case X86_IRQ_ALLOC_TYPE_IOAPIC_GET_PARENT:
                return map_ioapic_to_ir(info->ioapic_id);
        case X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT:
-               return map_hpet_to_ir(info->hpet_id);
+               return map_hpet_to_ir(info->devid);
        case X86_IRQ_ALLOC_TYPE_PCI_MSI:
        case X86_IRQ_ALLOC_TYPE_PCI_MSIX:
                return map_dev_to_ir(info->msi_dev);
@@ -1291,7 +1291,7 @@ static void intel_irq_remapping_prepare_irte(struct 
intel_ir_data *data,
        case X86_IRQ_ALLOC_TYPE_PCI_MSI:
        case X86_IRQ_ALLOC_TYPE_PCI_MSIX:
                if (info->type == X86_IRQ_ALLOC_TYPE_HPET)
-                       set_hpet_sid(irte, info->hpet_id);
+                       set_hpet_sid(irte, info->devid);
                else
                        set_msi_sid(irte, info->msi_dev);
 

Reply via email to