x86: mrst: Add Moorestown specific reboot/shutdown support

Moorestowns needs to use a special IPC command to reboot or shutdown the
platform.

Signed-off-by: Alek Du <alek.du@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
LKML-Reference: <20101110164928.6365.94243.stgit@localhost.localdomain>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Alek Du and committed by
Thomas Gleixner
cfb505a7 7f05dec3

+16
+16
arch/x86/platform/mrst/mrst.c
··· 35 35 #include <asm/i8259.h> 36 36 #include <asm/intel_scu_ipc.h> 37 37 #include <asm/apb_timer.h> 38 + #include <asm/reboot.h> 38 39 39 40 40 41 /* ··· 269 268 return 0; 270 269 } 271 270 271 + /* Reboot and power off are handled by the SCU on a MID device */ 272 + static void mrst_power_off(void) 273 + { 274 + intel_scu_ipc_simple_command(0xf1, 1); 275 + } 276 + 277 + static void mrst_reboot(void) 278 + { 279 + intel_scu_ipc_simple_command(0xf1, 0); 280 + } 281 + 272 282 /* 273 283 * Moorestown specific x86_init function overrides and early setup 274 284 * calls. ··· 304 292 x86_init.pci.fixup_irqs = x86_init_noop; 305 293 306 294 legacy_pic = &null_legacy_pic; 295 + 296 + /* Moorestown specific power_off/restart method */ 297 + pm_power_off = mrst_power_off; 298 + machine_ops.emergency_restart = mrst_reboot; 307 299 308 300 /* Avoid searching for BIOS MP tables */ 309 301 x86_init.mpparse.find_smp_config = x86_init_noop;