From 2ad6d55e38c51acc4191ea5578caebe3287f6521 Mon Sep 17 00:00:00 2001 From: David Hendricks Date: Mon, 9 Aug 2010 23:13:13 +0000 Subject: Some chips do not require enter/exit sequences. This causes them to be detected and printed multiple times in probe_idregs_* functions where a simple series of enter --> probe/print --> exit calls are made. This patch adds a simple check after each set of those calls to make the functions quit after a chip is found. Signed-off-by: David Hendricks Acked-by: Uwe Hermann git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5689 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/superiotool/winbond.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'util/superiotool/winbond.c') diff --git a/util/superiotool/winbond.c b/util/superiotool/winbond.c index fd132bfa2a..fe051be6bb 100644 --- a/util/superiotool/winbond.c +++ b/util/superiotool/winbond.c @@ -614,18 +614,22 @@ void probe_idregs_winbond(uint16_t port) enter_conf_mode_winbond_88(port); probe_idregs_winbond_helper("(init=0x88) ", port); exit_conf_mode_winbond_fintek_ite_8787(port); + if (chip_found) return; enter_conf_mode_winbond_89(port); probe_idregs_winbond_helper("(init=0x89) ", port); exit_conf_mode_winbond_fintek_ite_8787(port); + if (chip_found) return; enter_conf_mode_winbond_86(port); probe_idregs_winbond_helper("(init=0x86,0x86) ", port); exit_conf_mode_winbond_fintek_ite_8787(port); + if (chip_found) return; enter_conf_mode_winbond_fintek_ite_8787(port); probe_idregs_winbond_helper("(init=0x87,0x87) ", port); exit_conf_mode_winbond_fintek_ite_8787(port); + if (chip_found) return; } void print_winbond_chips(void) -- cgit v1.2.3