From 97d6b09209b171978d76dad835c7d33267e470ca Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Sat, 9 May 2009 07:27:23 +0000 Subject: Fix Elan SC520 handling Flashbase is a variable which should never be set outside chipset code. It is only used to calculate the base address of the flash space at exactly one location in the code. Setting flashbase during probe caused subsequent probes to fail unless special handling code was used. We had such code and it caused every probe except the first to fail on Elan SC520. Remove the superfluous flashbase assignment and simplify the rest of the code. Corresponding to flashrom svn r488. Signed-off-by: Carl-Daniel Hailfinger Acked-by: Ronald G. Minnich --- flashrom.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/flashrom.c b/flashrom.c index eb9fca86..3086cbee 100644 --- a/flashrom.c +++ b/flashrom.c @@ -113,7 +113,7 @@ struct flashchip *probe_flash(struct flashchip *first_flash, int force) size = getpagesize(); } - base = flashbase && flashchips == first_flash ? flashbase : (0xffffffff - size + 1); + base = flashbase ? flashbase : (0xffffffff - size + 1); flash->virtual_memory = bios = physmap("flash chip", base, size); if (force) @@ -135,7 +135,6 @@ notfound: printf("Found chip \"%s %s\" (%d KB) at physical address 0x%lx.\n", flash->vendor, flash->name, flash->total_size, base); - flashbase = base; return flash; } -- cgit v1.2.3