public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] reboot: perform warm/cold reset correctly for CF9 type
@ 2013-08-21  1:52 Li Fei
  2013-08-21  7:29 ` Ingo Molnar
  2013-08-21  8:13 ` [PATCH V2] " Li Fei
  0 siblings, 2 replies; 12+ messages in thread
From: Li Fei @ 2013-08-21  1:52 UTC (permalink / raw)
  To: hpa, mingo, tglx
  Cc: chuansheng.liu, x86, akpm, holt, rmk+kernel, linux-kernel

In current implementation for reboot type CF9 and CF9_COND,
warm and cold reset are not differentiated, and both are
performed by writing 0x06 to port 0xCF9 as warm reset. It's not
correct.

This commit will differentiate warm and cold reset, and perform
them correctly as below:
For warm reset, write 0x06 to port 0xCF9;
For cold reset, write 0x0E to port 0xCF9.

From: Liu Chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Li Fei <fei.li@intel.com>
---
 arch/x86/kernel/reboot.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 563ed91..6e06299 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -511,10 +511,15 @@ static void native_machine_emergency_restart(void)
 
 		case BOOT_CF9_COND:
 			if (port_cf9_safe) {
-				u8 cf9 = inb(0xcf9) & ~6;
+				u8 cf9 = inb(0xcf9) &
+						~(reboot_mode == REBOOT_WARM ?
+						0x06 : 0x0E);
 				outb(cf9|2, 0xcf9); /* Request hard reset */
 				udelay(50);
-				outb(cf9|6, 0xcf9); /* Actually do the reset */
+				/* Actually do the reset */
+				outb(cf9|(reboot_mode == REBOOT_WARM ?
+					0x06 : 0x0E),
+					0xcf9);
 				udelay(50);
 			}
 			reboot_type = BOOT_KBD;
-- 
1.7.4.1




^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-09-25 17:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-21  1:52 [PATCH] reboot: perform warm/cold reset correctly for CF9 type Li Fei
2013-08-21  7:29 ` Ingo Molnar
2013-08-21  7:33   ` H. Peter Anvin
2013-08-21  8:08     ` Li, Fei
2013-08-21  9:07       ` H. Peter Anvin
2013-08-22  3:32         ` Li, Fei
2013-09-03 17:35           ` H. Peter Anvin
2013-09-09  1:53             ` Liu, Chuansheng
2013-09-09  2:56               ` H. Peter Anvin
2013-08-21  8:13 ` [PATCH V2] " Li Fei
2013-09-10 19:51   ` [tip:x86/reboot] reboot: Allow specifying warm/ cold reset for CF9 boot type tip-bot for Li Fei
2013-09-25 17:36   ` tip-bot for Li Fei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox