From 28263dd238ce7995ee2be1087b4ff2dd542c341a Mon Sep 17 00:00:00 2001 From: Joerg Roedel Date: Tue, 26 Jun 2012 16:00:08 +0200 Subject: [PATCH] --- yaml --- r: 331530 b: refs/heads/master c: d976195c93bce4512e990d170858d20d71c95c45 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/iommu/amd_iommu.c | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index c321c7a142a4..32a538285382 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0b4d48cb2240d1686b3f0da234f0c9da18576503 +refs/heads/master: d976195c93bce4512e990d170858d20d71c95c45 diff --git a/trunk/drivers/iommu/amd_iommu.c b/trunk/drivers/iommu/amd_iommu.c index bcf48156868b..aeb890c35f7e 100644 --- a/trunk/drivers/iommu/amd_iommu.c +++ b/trunk/drivers/iommu/amd_iommu.c @@ -4200,4 +4200,30 @@ static int msi_setup_irq(struct pci_dev *pdev, unsigned int irq, return 0; } +static int setup_hpet_msi(unsigned int irq, unsigned int id) +{ + struct irq_2_iommu *irte_info; + struct irq_cfg *cfg; + int index, devid; + + cfg = irq_get_chip_data(irq); + if (!cfg) + return -EINVAL; + + irte_info = &cfg->irq_2_iommu; + devid = get_hpet_devid(id); + if (devid < 0) + return devid; + + index = alloc_irq_index(cfg, devid, 1); + if (index < 0) + return index; + + irte_info->sub_handle = devid; + irte_info->irte_index = index; + irte_info->iommu = (void *)cfg; + + return 0; +} + #endif