]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
mtd: cfi_cmdset_0002: Change erase one block to enable XIP once
authorTokunori Ikegami <ikegami@allied-telesis.co.jp>
Wed, 30 May 2018 09:32:30 +0000 (18:32 +0900)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Wed, 30 May 2018 19:38:29 +0000 (21:38 +0200)
To enable XIP it is executed both normal and error cases.
This call can be moved after the for loop as same with erase chip.

Signed-off-by: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
Reviewed-by: Joakim Tjernlund <Joakim.Tjernlund@infinera.com>
Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
drivers/mtd/chips/cfi_cmdset_0002.c

index d8e3a737c62f3be54d4b760e5372ade564146917..78b69ccd0b65f49df75cc3017cad2cee6db1cd00 100644 (file)
@@ -2389,13 +2389,10 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
                        chip->erase_suspended = 0;
                }
 
-               if (chip_good(map, adr, map_word_ff(map))) {
-                       xip_enable(map, chip, adr);
+               if (chip_good(map, adr, map_word_ff(map)))
                        break;
-               }
 
                if (time_after(jiffies, timeo)) {
-                       xip_enable(map, chip, adr);
                        printk(KERN_WARNING "MTD %s(): software timeout\n",
                               __func__);
                        ret = -EIO;
@@ -2418,6 +2415,7 @@ static int __xipram do_erase_oneblock(struct map_info *map, struct flchip *chip,
        }
 
        chip->state = FL_READY;
+       xip_enable(map, chip, adr);
        DISABLE_VPP(map);
        put_chip(map, chip, adr);
        mutex_unlock(&chip->mutex);