source: trunk/target/linux/ar71xx/patches-2.6.34/108-mtd_fix_cfi_cmdset_0002_status_check.patch @ 22803

Last change on this file since 22803 was 22803, 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 
    11581158                        break; 
    11591159                } 
    11601160 
    1161                 if (chip_ready(map, adr)) 
    1162                         break; 
     1161                if (chip_good(map, adr, datum)) 
     1162                        goto enable_xip; 
    11631163 
    11641164                /* Latency issues. Drop the lock, wait a while and retry */ 
    11651165                UDELAY(map, chip, adr, 1); 
    static int __xipram do_write_oneword(str 
    11751175 
    11761176                ret = -EIO; 
    11771177        } 
     1178 
     1179 enable_xip: 
    11781180        xip_enable(map, chip, adr); 
    11791181 op_done: 
    11801182        chip->state = FL_READY; 
    static int cfi_amdstd_write_buffers(stru 
    15211523        return 0; 
    15221524} 
    15231525 
    1524  
    15251526/* 
    15261527 * Handle devices with one erase region, that only implement 
    15271528 * the chip erase command. 
    static int __xipram do_erase_chip(struct 
    15851586                        chip->erase_suspended = 0; 
    15861587                } 
    15871588 
    1588                 if (chip_ready(map, adr)) 
    1589                         break; 
     1589                if (chip_good(map, adr, map_word_ff(map))) 
     1590                        goto op_done; 
    15901591 
    15911592                if (time_after(jiffies, timeo)) { 
    15921593                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    static int __xipram do_erase_chip(struct 
    16061607                ret = -EIO; 
    16071608        } 
    16081609 
     1610 op_done: 
    16091611        chip->state = FL_READY; 
    16101612        xip_enable(map, chip, adr); 
    16111613        put_chip(map, chip, adr); 
    static int __xipram do_erase_oneblock(st 
    16731675                        chip->erase_suspended = 0; 
    16741676                } 
    16751677 
    1676                 if (chip_ready(map, adr)) { 
     1678                if (chip_good(map, adr, map_word_ff(map))) { 
    16771679                        xip_enable(map, chip, adr); 
    1678                         break; 
     1680                        goto op_done; 
    16791681                } 
    16801682 
    16811683                if (time_after(jiffies, timeo)) { 
    static int __xipram do_erase_oneblock(st 
    16971699                ret = -EIO; 
    16981700        } 
    16991701 
     1702 op_done: 
    17001703        chip->state = FL_READY; 
    17011704        put_chip(map, chip, adr); 
    17021705        spin_unlock(chip->mutex); 
Note: See TracBrowser for help on using the repository browser.