diff options
author | Jiang Liu <jiang.liu@linux.intel.com> | 2014-06-22 22:30:35 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-07-14 14:17:09 -0400 |
commit | a4355e6749113d424cd15852c73e22c1ef1bb004 (patch) | |
tree | 5e530c45a4fa50c05a08dc18d21331fcf12a783d | |
parent | 411cf9ee2946492c0ac7eca48422fcf94a723ce5 (diff) |
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>
-rw-r--r-- | arch/x86/platform/intel-mid/device_libs/platform_wdt.c | 22 |
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 = { | |||
26 | 26 | ||
27 | static int tangier_probe(struct platform_device *pdev) | 27 | static int tangier_probe(struct platform_device *pdev) |
28 | { | 28 | { |
29 | int ioapic; | 29 | int gsi; |
30 | int irq; | ||
31 | struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data; | 30 | struct intel_mid_wdt_pdata *pdata = pdev->dev.platform_data; |
32 | struct io_apic_irq_attr irq_attr = { 0 }; | ||
33 | 31 | ||
34 | if (!pdata) | 32 | if (!pdata) |
35 | return -EINVAL; | 33 | return -EINVAL; |
36 | 34 | ||
37 | irq = pdata->irq; | 35 | /* IOAPIC builds identity mapping between GSI and IRQ on MID */ |
38 | ioapic = mp_find_ioapic(irq); | 36 | gsi = pdata->irq; |
39 | if (ioapic >= 0) { | 37 | if (mp_set_gsi_attr(gsi, 1, 0, cpu_to_node(0)) || |
40 | int ret; | 38 | mp_map_gsi_to_irq(gsi, IOAPIC_MAP_ALLOC) <= 0) { |
41 | irq_attr.ioapic = ioapic; | ||
42 | irq_attr.ioapic_pin = irq; | ||
43 | irq_attr.trigger = 1; | ||
44 | /* irq_attr.polarity = 0; -> Active high */ | ||
45 | ret = io_apic_set_pci_routing(NULL, irq, &irq_attr); | ||
46 | if (ret) | ||
47 | return ret; | ||
48 | } else { | ||
49 | dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n", | 39 | dev_warn(&pdev->dev, "cannot find interrupt %d in ioapic\n", |
50 | irq); | 40 | gsi); |
51 | return -EINVAL; | 41 | return -EINVAL; |
52 | } | 42 | } |
53 | 43 | ||