summaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorJiang Liu <jiang.liu@linux.intel.com>2014-06-23 04:30:35 +0200
committerThomas Gleixner <tglx@linutronix.de>2014-07-14 20:17:09 +0200
commita4355e6749113d424cd15852c73e22c1ef1bb004 (patch)
tree5e530c45a4fa50c05a08dc18d21331fcf12a783d /arch/x86
parentx86, vsmp: Remove is_vsmp_box() from apic_is_clustered_box() (diff)
downloadlinux-a4355e6749113d424cd15852c73e22c1ef1bb004.tar.xz
linux-a4355e6749113d424cd15852c73e22c1ef1bb004.zip
x86: intel-mid: Use the new io_apic interfaces
Commit 9f354b0252b8 "x86, irq: Clean up unused IOAPIC interface" kills interface io_apic_set_pci_routing(), so change arch/x86/platform/ intel-mid/device_libs/platform_wdt.c to use new interfaces. Due to hardware resource restriction, this patch only passes compilation without functional tests. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> Acked-by: David Cohen <david.a.cohen@linux.intel.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Tang Feng <feng.tang@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/1403490643-26187-1-git-send-email-jiang.liu@linux.intel.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/platform/intel-mid/device_libs/platform_wdt.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
index 973cf3bfa9fd..0b283d4d0ad7 100644
--- a/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
+++ b/arch/x86/platform/intel-mid/device_libs/platform_wdt.c
@@ -26,28 +26,18 @@ static struct platform_device wdt_dev = {
static int tangier_probe(struct platform_device *pdev)
{
- int ioapic;
- int irq;
+ int gsi;
struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data;
- struct io_apic_irq_attr irq_attr = { 0 };
if (!pdata)
return -EINVAL;
- irq = pdata->irq;
- ioapic = mp_find_ioapic(irq);
- if (ioapic >= 0) {
- int ret;
- irq_attr.ioapic = ioapic;
- irq_attr.ioapic_pin = irq;
- irq_attr.trigger = 1;
- /* irq_attr.polarity = 0; -> Active high */
- ret = io_apic_set_pci_routing(NULL, irq, &irq_attr);
- if (ret)
- return ret;
- } else {
+ /* IOAPIC builds identity mapping between GSI and IRQ on MID */
+ gsi = pdata->irq;
+ if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) ||
+ mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) {
dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n",
- irq);
+ gsi);
return -EINVAL;
}