summaryrefslogtreecommitdiff
path: root/arch/x86/xen/apic.c
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-03-20 22:53:10 (GMT)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-05-01 18:50:33 (GMT)
commit31b3c9d723407b395564d1fff3624cc0083ae520 (patch)
tree91956c150661328c2f1ff344491000cf06d2f60e /arch/x86/xen/apic.c
parent4a8e2a3115e7aa4bd2deb4c6483d47c743e0fbb3 (diff)
downloadlinux-fsl-qoriq-31b3c9d723407b395564d1fff3624cc0083ae520.tar.xz
xen/x86: Implement x86_apic_ops
Or rather just implement one different function as opposed to the native one : the read function. We synthesize the values. Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> [v1: Rebased on top of tip/x86/urgent] [v2: Return 0xfd instead of 0xff in the default case] Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'arch/x86/xen/apic.c')
-rw-r--r--arch/x86/xen/apic.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c
new file mode 100644
index 0000000..73ade38
--- /dev/null
+++ b/arch/x86/xen/apic.c
@@ -0,0 +1,17 @@
+#include <linux/init.h>
+#include <asm/x86_init.h>
+
+unsigned int xen_io_apic_read(unsigned apic, unsigned reg)
+{
+ if (reg == 0x1)
+ return 0x00170020;
+ else if (reg == 0x0)
+ return apic << 24;
+
+ return 0xfd;
+}
+
+void __init xen_init_apic(void)
+{
+ x86_io_apic_ops.read = xen_io_apic_read;
+}