[MTD] Fix fwh_lock locking
This is on a custom board with a mapping driver access to an ST M50LPW080 chip. This chip is probed successfully with do_map_probe("jedec_probe",...). If I use the mtdchar interface to perform unlock->erase->program->lock on any of the 16 eraseblocks in the chip, the chip is left in FL_STATUS mode while the data structures believe that the chip is in FL_READY mode. Hence, any subsequent reads to any flash byte results in 0x80 being read. Signed-off-by: Shashi Rao <shashi@sun.com> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
parent
c2aecda79c
commit
e6be133b68
|
@ -65,11 +65,12 @@ static int fwh_xxlock_oneblock(struct map_info *map, struct flchip *chip,
|
|||
return ret;
|
||||
}
|
||||
|
||||
chip->oldstate = chip->state;
|
||||
chip->state = xxlt->state;
|
||||
map_write(map, CMD(xxlt->val), adr);
|
||||
|
||||
/* Done and happy. */
|
||||
chip->state = FL_READY;
|
||||
chip->state = chip->oldstate;
|
||||
put_chip(map, chip, adr);
|
||||
spin_unlock(chip->mutex);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue