diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:14:47 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2007-10-11 05:14:47 -0400 |
commit | a6d83df15c53a5f503c50e3d824c1cf3f89ebb1a (patch) | |
tree | f9a31879ce447d246930cb0be7659a20d95086ef /arch/x86_64/kernel/vsmp.c | |
parent | 198a071dff9ee61973edf8c58f22ecd5bc4892c8 (diff) |
x86_64: prepare shared kernel/vsmp.c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86_64/kernel/vsmp.c')
-rw-r--r-- | arch/x86_64/kernel/vsmp.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/arch/x86_64/kernel/vsmp.c b/arch/x86_64/kernel/vsmp.c deleted file mode 100644 index 414caf0c5f9a..000000000000 --- a/arch/x86_64/kernel/vsmp.c +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | /* | ||
2 | * vSMPowered(tm) systems specific initialization | ||
3 | * Copyright (C) 2005 ScaleMP Inc. | ||
4 | * | ||
5 | * Use of this code is subject to the terms and conditions of the | ||
6 | * GNU general public license version 2. See "COPYING" or | ||
7 | * http://www.gnu.org/licenses/gpl.html | ||
8 | * | ||
9 | * Ravikiran Thirumalai <kiran@scalemp.com>, | ||
10 | * Shai Fultheim <shai@scalemp.com> | ||
11 | */ | ||
12 | |||
13 | #include <linux/init.h> | ||
14 | #include <linux/pci_ids.h> | ||
15 | #include <linux/pci_regs.h> | ||
16 | #include <asm/pci-direct.h> | ||
17 | #include <asm/io.h> | ||
18 | |||
19 | static int __init vsmp_init(void) | ||
20 | { | ||
21 | void *address; | ||
22 | unsigned int cap, ctl; | ||
23 | |||
24 | if (!early_pci_allowed()) | ||
25 | return 0; | ||
26 | |||
27 | /* Check if we are running on a ScaleMP vSMP box */ | ||
28 | if ((read_pci_config_16(0, 0x1f, 0, PCI_VENDOR_ID) != PCI_VENDOR_ID_SCALEMP) || | ||
29 | (read_pci_config_16(0, 0x1f, 0, PCI_DEVICE_ID) != PCI_DEVICE_ID_SCALEMP_VSMP_CTL)) | ||
30 | return 0; | ||
31 | |||
32 | /* set vSMP magic bits to indicate vSMP capable kernel */ | ||
33 | address = ioremap(read_pci_config(0, 0x1f, 0, PCI_BASE_ADDRESS_0), 8); | ||
34 | cap = readl(address); | ||
35 | ctl = readl(address + 4); | ||
36 | printk("vSMP CTL: capabilities:0x%08x control:0x%08x\n", cap, ctl); | ||
37 | if (cap & ctl & (1 << 4)) { | ||
38 | /* Turn on vSMP IRQ fastpath handling (see system.h) */ | ||
39 | ctl &= ~(1 << 4); | ||
40 | writel(ctl, address + 4); | ||
41 | ctl = readl(address + 4); | ||
42 | printk("vSMP CTL: control set to:0x%08x\n", ctl); | ||
43 | } | ||
44 | |||
45 | iounmap(address); | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | core_initcall(vsmp_init); | ||