source: trunk/target/linux/ar71xx/patches-2.6.37/108-mtd_fix_cfi_cmdset_0002_status_check.patch @ 24210

Last change on this file since 24210 was 24210, checked in by juhosg, 6 years ago

ar71xx: refresh patches

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

    a b static int __xipram do_write_oneword(str 
    12311231                        break; 
    12321232                } 
    12331233 
    1234                 if (chip_ready(map, adr)) 
    1235                         break; 
     1234                if (chip_good(map, adr, datum)) 
     1235                        goto enable_xip; 
    12361236 
    12371237                /* Latency issues. Drop the lock, wait a while and retry */ 
    12381238                UDELAY(map, chip, adr, 1); 
    static int __xipram do_write_oneword(str 
    12481248 
    12491249                ret = -EIO; 
    12501250        } 
     1251 
     1252 enable_xip: 
    12511253        xip_enable(map, chip, adr); 
    12521254 op_done: 
    12531255        chip->state = FL_READY; 
    static int cfi_amdstd_write_buffers(stru 
    15791581        return 0; 
    15801582} 
    15811583 
    1582  
    15831584/* 
    15841585 * Handle devices with one erase region, that only implement 
    15851586 * the chip erase command. 
    static int __xipram do_erase_chip(struct 
    16431644                        chip->erase_suspended = 0; 
    16441645                } 
    16451646 
    1646                 if (chip_ready(map, adr)) 
    1647                         break; 
     1647                if (chip_good(map, adr, map_word_ff(map))) 
     1648                        goto op_done; 
    16481649 
    16491650                if (time_after(jiffies, timeo)) { 
    16501651                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    static int __xipram do_erase_chip(struct 
    16641665                ret = -EIO; 
    16651666        } 
    16661667 
     1668 op_done: 
    16671669        chip->state = FL_READY; 
    16681670        xip_enable(map, chip, adr); 
    16691671        put_chip(map, chip, adr); 
    static int __xipram do_erase_oneblock(st 
    17311733                        chip->erase_suspended = 0; 
    17321734                } 
    17331735 
    1734                 if (chip_ready(map, adr)) { 
     1736                if (chip_good(map, adr, map_word_ff(map))) { 
    17351737                        xip_enable(map, chip, adr); 
    1736                         break; 
     1738                        goto op_done; 
    17371739                } 
    17381740 
    17391741                if (time_after(jiffies, timeo)) { 
    static int __xipram do_erase_oneblock(st 
    17551757                ret = -EIO; 
    17561758        } 
    17571759 
     1760 op_done: 
    17581761        chip->state = FL_READY; 
    17591762        put_chip(map, chip, adr); 
    17601763        mutex_unlock(&chip->mutex); 
Note: See TracBrowser for help on using the repository browser.