Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=24d8d25f1563f25c365cc6895bfc88af0b90ee40
Commit:     24d8d25f1563f25c365cc6895bfc88af0b90ee40
Parent:     2512e7c5c1851951ba4a625b84b4400bf6150625
Author:     Thomas Gleixner <[EMAIL PROTECTED]>
AuthorDate: Thu Oct 11 11:12:34 2007 +0200
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Thu Oct 11 11:12:34 2007 +0200

    i386: prepare shared kernel/reboot_fixups.c
    
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
---
 arch/i386/kernel/Makefile           |    2 +-
 arch/i386/kernel/reboot_fixups.c    |   68 -----------------------------------
 arch/i386/kernel/reboot_fixups_32.c |   68 +++++++++++++++++++++++++++++++++++
 3 files changed, 69 insertions(+), 69 deletions(-)

diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile
index 4ff5e93..57b41c4 100644
--- a/arch/i386/kernel/Makefile
+++ b/arch/i386/kernel/Makefile
@@ -24,7 +24,7 @@ obj-$(CONFIG_X86_TRAMPOLINE)  += trampoline.o
 obj-$(CONFIG_X86_MPPARSE)      += mpparse.o
 obj-$(CONFIG_X86_LOCAL_APIC)   += apic_32.o nmi_32.o
 obj-$(CONFIG_X86_IO_APIC)      += io_apic_32.o
-obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups.o
+obj-$(CONFIG_X86_REBOOTFIXUPS) += reboot_fixups_32.o
 obj-$(CONFIG_KEXEC)            += machine_kexec.o relocate_kernel_32.o 
crash_32.o
 obj-$(CONFIG_CRASH_DUMP)       += crash_dump.o
 obj-$(CONFIG_X86_NUMAQ)                += numaq.o
diff --git a/arch/i386/kernel/reboot_fixups.c b/arch/i386/kernel/reboot_fixups.c
deleted file mode 100644
index 03e1cce..0000000
--- a/arch/i386/kernel/reboot_fixups.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * linux/arch/i386/kernel/reboot_fixups.c
- *
- * This is a good place to put board specific reboot fixups.
- *
- * List of supported fixups:
- * geode-gx1/cs5530a - Jaya Kumar <[EMAIL PROTECTED]>
- * geode-gx/lx/cs5536 - Andres Salomon <[EMAIL PROTECTED]>
- *
- */
-
-#include <asm/delay.h>
-#include <linux/pci.h>
-#include <asm/reboot_fixups.h>
-#include <asm/msr.h>
-
-static void cs5530a_warm_reset(struct pci_dev *dev)
-{
-       /* writing 1 to the reset control register, 0x44 causes the
-       cs5530a to perform a system warm reset */
-       pci_write_config_byte(dev, 0x44, 0x1);
-       udelay(50); /* shouldn't get here but be safe and spin-a-while */
-       return;
-}
-
-static void cs5536_warm_reset(struct pci_dev *dev)
-{
-       /*
-        * 6.6.2.12 Soft Reset (DIVIL_SOFT_RESET)
-        * writing 1 to the LSB of this MSR causes a hard reset.
-        */
-       wrmsrl(0x51400017, 1ULL);
-       udelay(50); /* shouldn't get here but be safe and spin a while */
-}
-
-struct device_fixup {
-       unsigned int vendor;
-       unsigned int device;
-       void (*reboot_fixup)(struct pci_dev *);
-};
-
-static struct device_fixup fixups_table[] = {
-{ PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY, cs5530a_warm_reset },
-{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA, cs5536_warm_reset },
-};
-
-/*
- * we see if any fixup is available for our current hardware. if there
- * is a fixup, we call it and we expect to never return from it. if we
- * do return, we keep looking and then eventually fall back to the
- * standard mach_reboot on return.
- */
-void mach_reboot_fixups(void)
-{
-       struct device_fixup *cur;
-       struct pci_dev *dev;
-       int i;
-
-       for (i=0; i < ARRAY_SIZE(fixups_table); i++) {
-               cur = &(fixups_table[i]);
-               dev = pci_get_device(cur->vendor, cur->device, NULL);
-               if (!dev)
-                       continue;
-
-               cur->reboot_fixup(dev);
-       }
-}
-
diff --git a/arch/i386/kernel/reboot_fixups_32.c 
b/arch/i386/kernel/reboot_fixups_32.c
new file mode 100644
index 0000000..03e1cce
--- /dev/null
+++ b/arch/i386/kernel/reboot_fixups_32.c
@@ -0,0 +1,68 @@
+/*
+ * linux/arch/i386/kernel/reboot_fixups.c
+ *
+ * This is a good place to put board specific reboot fixups.
+ *
+ * List of supported fixups:
+ * geode-gx1/cs5530a - Jaya Kumar <[EMAIL PROTECTED]>
+ * geode-gx/lx/cs5536 - Andres Salomon <[EMAIL PROTECTED]>
+ *
+ */
+
+#include <asm/delay.h>
+#include <linux/pci.h>
+#include <asm/reboot_fixups.h>
+#include <asm/msr.h>
+
+static void cs5530a_warm_reset(struct pci_dev *dev)
+{
+       /* writing 1 to the reset control register, 0x44 causes the
+       cs5530a to perform a system warm reset */
+       pci_write_config_byte(dev, 0x44, 0x1);
+       udelay(50); /* shouldn't get here but be safe and spin-a-while */
+       return;
+}
+
+static void cs5536_warm_reset(struct pci_dev *dev)
+{
+       /*
+        * 6.6.2.12 Soft Reset (DIVIL_SOFT_RESET)
+        * writing 1 to the LSB of this MSR causes a hard reset.
+        */
+       wrmsrl(0x51400017, 1ULL);
+       udelay(50); /* shouldn't get here but be safe and spin a while */
+}
+
+struct device_fixup {
+       unsigned int vendor;
+       unsigned int device;
+       void (*reboot_fixup)(struct pci_dev *);
+};
+
+static struct device_fixup fixups_table[] = {
+{ PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY, cs5530a_warm_reset },
+{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA, cs5536_warm_reset },
+};
+
+/*
+ * we see if any fixup is available for our current hardware. if there
+ * is a fixup, we call it and we expect to never return from it. if we
+ * do return, we keep looking and then eventually fall back to the
+ * standard mach_reboot on return.
+ */
+void mach_reboot_fixups(void)
+{
+       struct device_fixup *cur;
+       struct pci_dev *dev;
+       int i;
+
+       for (i=0; i < ARRAY_SIZE(fixups_table); i++) {
+               cur = &(fixups_table[i]);
+               dev = pci_get_device(cur->vendor, cur->device, NULL);
+               if (!dev)
+                       continue;
+
+               cur->reboot_fixup(dev);
+       }
+}
+
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to