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

Last change on this file since 20141 was 20141, checked in by acoul, 7 years ago

ar71xx: add 2.6.34 preliminary support (patches)

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

    a b static int __xipram do_write_oneword(str 
    11301130                        break; 
    11311131                } 
    11321132 
    1133                 if (chip_ready(map, adr)) 
    1134                         break; 
     1133                if (chip_good(map, adr, datum)) 
     1134                        goto enable_xip; 
    11351135 
    11361136                /* Latency issues. Drop the lock, wait a while and retry */ 
    11371137                UDELAY(map, chip, adr, 1); 
    static int __xipram do_write_oneword(str 
    11471147 
    11481148                ret = -EIO; 
    11491149        } 
     1150 
     1151 enable_xip: 
    11501152        xip_enable(map, chip, adr); 
    11511153 op_done: 
    11521154        chip->state = FL_READY; 
    static int cfi_amdstd_write_buffers(stru 
    14931495        return 0; 
    14941496} 
    14951497 
    1496  
    14971498/* 
    14981499 * Handle devices with one erase region, that only implement 
    14991500 * the chip erase command. 
    static int __xipram do_erase_chip(struct 
    15571558                        chip->erase_suspended = 0; 
    15581559                } 
    15591560 
    1560                 if (chip_ready(map, adr)) 
    1561                         break; 
     1561                if (chip_good(map, adr, map_word_ff(map))) 
     1562                        goto op_done; 
    15621563 
    15631564                if (time_after(jiffies, timeo)) { 
    15641565                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    static int __xipram do_erase_chip(struct 
    15781579                ret = -EIO; 
    15791580        } 
    15801581 
     1582 op_done: 
    15811583        chip->state = FL_READY; 
    15821584        xip_enable(map, chip, adr); 
    15831585        put_chip(map, chip, adr); 
    static int __xipram do_erase_oneblock(st 
    16451647                        chip->erase_suspended = 0; 
    16461648                } 
    16471649 
    1648                 if (chip_ready(map, adr)) { 
     1650                if (chip_good(map, adr, map_word_ff(map))) { 
    16491651                        xip_enable(map, chip, adr); 
    1650                         break; 
     1652                        goto op_done; 
    16511653                } 
    16521654 
    16531655                if (time_after(jiffies, timeo)) { 
    static int __xipram do_erase_oneblock(st 
    16691671                ret = -EIO; 
    16701672        } 
    16711673 
     1674 op_done: 
    16721675        chip->state = FL_READY; 
    16731676        put_chip(map, chip, adr); 
    16741677        spin_unlock(chip->mutex); 
Note: See TracBrowser for help on using the repository browser.