static int ecc_finish() { int ret; if((ret = wait_for_ecc_interrupt(500)) != 0) return ret; if((GET_REG(NANDECC + NANDECC_STATUS) & 0x1) != 0) return ERROR_ECC; return 0; }
static int ecc_finish(dma_addr_t sectorDMA, dma_addr_t eccDMA, int sectors) { int ret; if((ret = wait_for_ecc_interrupt(500)) != 0) return ret; dma_unmap_single(nand_dev, sectorDMA, sectors * SECTOR_SIZE, DMA_BIDIRECTIONAL); dma_unmap_single(nand_dev, eccDMA, sectors* 20, DMA_BIDIRECTIONAL); if((readl(NANDECC + NANDECC_STATUS) & 0x1) != 0) return ERROR_ECC; return 0; }