source: trunk/target/linux/ar71xx/patches-2.6.32/108-mtd_fix_cfi_cmdset_0002_status_check.patch @ 19188

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

ar71xx: update cfi patches for 2.6.3[12] as well

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

    a b static int __xipram do_write_oneword(str 
    11411141                        break; 
    11421142                } 
    11431143 
    1144                 if (chip_ready(map, adr)) 
    1145                         break; 
     1144                if (chip_good(map, adr, datum)) 
     1145                        goto enable_xip; 
    11461146 
    11471147                /* Latency issues. Drop the lock, wait a while and retry */ 
    11481148                UDELAY(map, chip, adr, 1); 
    static int __xipram do_write_oneword(str 
    11581158 
    11591159                ret = -EIO; 
    11601160        } 
     1161 
     1162 enable_xip: 
    11611163        xip_enable(map, chip, adr); 
    11621164 op_done: 
    11631165        chip->state = FL_READY; 
    static int cfi_amdstd_write_buffers(stru 
    15041506        return 0; 
    15051507} 
    15061508 
    1507  
    15081509/* 
    15091510 * Handle devices with one erase region, that only implement 
    15101511 * the chip erase command. 
    static int __xipram do_erase_chip(struct 
    15681569                        chip->erase_suspended = 0; 
    15691570                } 
    15701571 
    1571                 if (chip_ready(map, adr)) 
    1572                         break; 
     1572                if (chip_good(map, adr, map_word_ff(map))) 
     1573                        goto op_done; 
    15731574 
    15741575                if (time_after(jiffies, timeo)) { 
    15751576                        printk(KERN_WARNING "MTD %s(): software timeout\n", 
    static int __xipram do_erase_chip(struct 
    15891590                ret = -EIO; 
    15901591        } 
    15911592 
     1593 op_done: 
    15921594        chip->state = FL_READY; 
    15931595        xip_enable(map, chip, adr); 
    15941596        put_chip(map, chip, adr); 
    static int __xipram do_erase_oneblock(st 
    16561658                        chip->erase_suspended = 0; 
    16571659                } 
    16581660 
    1659                 if (chip_ready(map, adr)) { 
     1661                if (chip_good(map, adr, map_word_ff(map))) { 
    16601662                        xip_enable(map, chip, adr); 
    1661                         break; 
     1663                        goto op_done; 
    16621664                } 
    16631665 
    16641666                if (time_after(jiffies, timeo)) { 
    static int __xipram do_erase_oneblock(st 
    16801682                ret = -EIO; 
    16811683        } 
    16821684 
     1685 op_done: 
    16831686        chip->state = FL_READY; 
    16841687        put_chip(map, chip, adr); 
    16851688        spin_unlock(chip->mutex); 
Note: See TracBrowser for help on using the repository browser.