Ver Fonte

[MTD] NOR: leave Intel chips in read-array mode on suspend

During some testing with several samsung s3c24xx based
devices it was discovered that often the
cfi_cmdset_0001.c would not leave the chip in
read-array mode on suspend. this is an issue if the
same flash chip is used for the bootloader that needs
to be read on resume.

Signed-off-by: David Anders <danders@amltd.com>
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
David Anders há 18 anos atrás
pai
commit
a86aaa6ddf
1 ficheiros alterados com 2 adições e 0 exclusões
  1. 2 0
      drivers/mtd/chips/cfi_cmdset_0001.c

+ 2 - 0
drivers/mtd/chips/cfi_cmdset_0001.c

@@ -2224,6 +2224,8 @@ static int cfi_intelext_suspend(struct mtd_info *mtd)
 		case FL_CFI_QUERY:
 		case FL_CFI_QUERY:
 		case FL_JEDEC_QUERY:
 		case FL_JEDEC_QUERY:
 			if (chip->oldstate == FL_READY) {
 			if (chip->oldstate == FL_READY) {
+				/* place the chip in a known state before suspend */
+				map_write(map, CMD(0xFF), cfi->chips[i].start);
 				chip->oldstate = chip->state;
 				chip->oldstate = chip->state;
 				chip->state = FL_PM_SUSPENDED;
 				chip->state = FL_PM_SUSPENDED;
 				/* No need to wake_up() on this state change -
 				/* No need to wake_up() on this state change -