Lines Matching full:oob
247 u8 *oob; member
255 u8 *oob, u32 len, u8 dma_cmd);
1310 "error: ECC too large for OOB (ECC bytes %d, spare sector %d)\n", in brcmstb_choose_ecc_layout()
1362 /* Helper functions for reading and writing OOB registers */
1401 * read_oob_from_regs - read data from OOB registers
1404 * @oob: buffer to read to
1405 * @sas: spare area sector size (i.e., OOB size per FLASH_CACHE)
1408 static int read_oob_from_regs(struct brcmnand_controller *ctrl, int i, u8 *oob, in read_oob_from_regs() argument
1414 /* Adjust OOB values for 1K sector size */ in read_oob_from_regs()
1420 oob[j] = oob_reg_read(ctrl, j); in read_oob_from_regs()
1425 * write_oob_to_regs - write data to OOB registers
1427 * @oob: buffer to write from
1428 * @sas: spare area sector size (i.e., OOB size per FLASH_CACHE)
1432 const u8 *oob, int sas, int sector_1k) in write_oob_to_regs() argument
1437 /* Adjust OOB values for 1K sector size */ in write_oob_to_regs()
1444 (oob[j + 0] << 24) | in write_oob_to_regs()
1445 (oob[j + 1] << 16) | in write_oob_to_regs()
1446 (oob[j + 2] << 8) | in write_oob_to_regs()
1447 (oob[j + 3] << 0)); in write_oob_to_regs()
1485 if (ctrl->oob) { in brcmnand_edu_irq()
1487 ctrl->oob += read_oob_from_regs(ctrl, in brcmnand_edu_irq()
1489 ctrl->oob, ctrl->sas, in brcmnand_edu_irq()
1495 ctrl->oob += write_oob_to_regs(ctrl, in brcmnand_edu_irq()
1497 ctrl->oob, ctrl->sas, in brcmnand_edu_irq()
1873 u8 *oob, u32 len, u8 cmd) in brcmnand_edu_trans() argument
1885 "read" : "write"), buf, oob); in brcmnand_edu_trans()
1899 ctrl->oob = oob; in brcmnand_edu_trans()
1908 if (ctrl->oob && (ctrl->edu_cmd == EDU_CMD_WRITE)) { in brcmnand_edu_trans()
1912 ctrl->oob += write_oob_to_regs(ctrl, in brcmnand_edu_trans()
1914 ctrl->oob, ctrl->sas, in brcmnand_edu_trans()
1932 /* read last subpage oob */ in brcmnand_edu_trans()
1933 if (ctrl->oob && (ctrl->edu_cmd == EDU_CMD_READ)) { in brcmnand_edu_trans()
1934 ctrl->oob += read_oob_from_regs(ctrl, in brcmnand_edu_trans()
1936 ctrl->oob, ctrl->sas, in brcmnand_edu_trans()
2049 u8 *oob, u32 len, u8 dma_cmd) in brcmnand_dma_trans() argument
2081 u8 *oob, u64 *err_addr) in brcmnand_read_by_pio() argument
2104 if (oob) in brcmnand_read_by_pio()
2105 oob += read_oob_from_regs(ctrl, i, oob, in brcmnand_read_by_pio()
2180 u64 addr, unsigned int trans, u32 *buf, u8 *oob) in brcmnand_read() argument
2194 if (ctrl->dma_trans && (has_edu(ctrl) || !oob) && in brcmnand_read()
2196 err = ctrl->dma_trans(host, addr, buf, oob, in brcmnand_read()
2211 if (oob) in brcmnand_read()
2212 memset(oob, 0x99, mtd->oobsize); in brcmnand_read()
2215 oob, &err_addr); in brcmnand_read()
2260 oob, &err_addr); in brcmnand_read()
2277 u8 *oob = oob_required ? (u8 *)chip->oob_poi : NULL; in brcmnand_read_page() local
2282 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob); in brcmnand_read_page()
2290 u8 *oob = oob_required ? (u8 *)chip->oob_poi : NULL; in brcmnand_read_page_raw() local
2297 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob); in brcmnand_read_page_raw()
2325 u64 addr, const u32 *buf, u8 *oob) in brcmnand_write() argument
2348 if (use_dma(ctrl) && (has_edu(ctrl) || !oob) && flash_dma_buf_ok(buf)) { in brcmnand_write()
2349 if (ctrl->dma_trans(host, addr, (u32 *)buf, oob, mtd->writesize, in brcmnand_write()
2368 } else if (oob) { in brcmnand_write()
2373 if (oob) { in brcmnand_write()
2374 oob += write_oob_to_regs(ctrl, i, oob, in brcmnand_write()
2400 void *oob = oob_required ? chip->oob_poi : NULL; in brcmnand_write_page() local
2403 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob); in brcmnand_write_page()
2413 void *oob = oob_required ? chip->oob_poi : NULL; in brcmnand_write_page_raw() local
2417 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob); in brcmnand_write_page_raw()
2552 "%lluMiB total, %uKiB blocks, %u%s pages, %uB OOB, %u-bit", in brcmnand_print_cfg()
2595 "brcm,nand-oob-sector-size", in brcmnand_setup_dev()
2740 /* If OOB is written with ECC enabled it will cause ECC errors */ in brcmnand_attach_chip()