source: trunk/target/linux/ar71xx/patches-2.6.36/108-mtd_fix_cfi_cmdset_0002_status_check.patch @ 25641

Last change on this file since 25641 was 25641, checked in by nbd, 5 years ago

kernel: remove imq support, refresh patches

File size: 1.6 KB
  • drivers/mtd/chips/cfi_cmdset_0002.c

    a b static int __xipram do_write_oneword(str 
    12151215                        break; 
    12161216                } 
    12171217 
    1218                 if (chip_ready(map, adr)) 
    1219                         break; 
     1218                if (chip_good(map, adr, datum)) 
     1219                        goto enable_xip; 
    12201220 
    12211221                /* Latency issues. Drop the lock, wait a while and retry */ 
    12221222                UDELAY(map, chip, adr, 1); 
    static int __xipram do_write_oneword(str 
    12321232 
    12331233                ret = -EIO; 
    12341234        } 
     1235 
     1236 enable_xip: 
    12351237        xip_enable(map, chip, adr); 
    12361238 op_done: 
    12371239        chip->state = FL_READY; 
    static int cfi_amdstd_write_buffers(stru 
    15781580        return 0; 
    15791581} 
    15801582 
    1581  
    15821583/* 
    15831584 * Handle devices with one erase region, that only implement 
    15841585 * the chip erase command. 
    static int __xipram do_erase_chip(struct 
    16421643                        chip->erase_suspended = 0; 
    16431644                } 
    16441645 
    1645                 if (chip_ready(map, adr)) 
    1646                         break; 
     1646                if (chip_good(map, adr, map_word_ff(map))) 
     1647                        goto op_done; 
    16471648 
    16481649                if (time_after(jiffies, timeo)) { 
    16491650                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    static int __xipram do_erase_chip(struct 
    16631664                ret = -EIO; 
    16641665        } 
    16651666 
     1667 op_done: 
    16661668        chip->state = FL_READY; 
    16671669        xip_enable(map, chip, adr); 
    16681670        put_chip(map, chip, adr); 
    static int __xipram do_erase_oneblock(st 
    17301732                        chip->erase_suspended = 0; 
    17311733                } 
    17321734 
    1733                 if (chip_ready(map, adr)) { 
     1735                if (chip_good(map, adr, map_word_ff(map))) { 
    17341736                        xip_enable(map, chip, adr); 
    1735                         break; 
     1737                        goto op_done; 
    17361738                } 
    17371739 
    17381740                if (time_after(jiffies, timeo)) { 
    static int __xipram do_erase_oneblock(st 
    17541756                ret = -EIO; 
    17551757        } 
    17561758 
     1759 op_done: 
    17571760        chip->state = FL_READY; 
    17581761        put_chip(map, chip, adr); 
    17591762        mutex_unlock(&chip->mutex); 
Note: See TracBrowser for help on using the repository browser.