]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[MTD] Fix fwh_lock locking
authorShashi Rao <shashi@sun.com>
Wed, 28 Mar 2007 22:56:28 +0000 (15:56 -0700)
committerDavid Woodhouse <dwmw2@infradead.org>
Tue, 17 Apr 2007 18:11:20 +0000 (14:11 -0400)
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>
drivers/mtd/chips/fwh_lock.h

index 77303ce5dcf1699d3097a76a25935d884f515fb3..ab44f2b996f8ceb4f2729fa8fdc7c1956386a1d6 100644 (file)
@@ -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;