Lines Matching refs:oob

379  * nand_fill_oob - [INTERN] Transfer client buffer to oob
381 * @oob: oob data buffer
382 * @len: oob data write length
383 * @ops: oob ops structure
385 static uint8_t *nand_fill_oob(struct nand_chip *chip, uint8_t *oob, size_t len,
401 memcpy(chip->oob_poi + ops->ooboffs, oob, len);
402 return oob + len;
405 ret = mtd_ooblayout_set_databytes(mtd, oob, chip->oob_poi,
408 return oob + len;
420 * @ops: oob operation description structure
2913 * Not for syndrome calculating ECC controllers, which use a special oob layout.
2984 * We need a special oob layout and handling even when OOB isn't used.
2992 uint8_t *oob = chip->oob_poi;
3007 ret = nand_read_data_op(chip, oob, chip->ecc.prepad,
3012 oob += chip->ecc.prepad;
3015 ret = nand_read_data_op(chip, oob, eccbytes, false, false);
3019 oob += eccbytes;
3022 ret = nand_read_data_op(chip, oob, chip->ecc.postpad,
3027 oob += chip->ecc.postpad;
3031 size = mtd->oobsize - (oob - chip->oob_poi);
3033 ret = nand_read_data_op(chip, oob, size, false, false);
3205 * Not for syndrome calculating ECC controllers which need a special oob layout.
3344 * need a special oob layout and handling.
3355 uint8_t *oob = chip->oob_poi;
3372 ret = nand_read_data_op(chip, oob, chip->ecc.prepad,
3377 oob += chip->ecc.prepad;
3382 ret = nand_read_data_op(chip, oob, eccbytes, false, false);
3386 stat = chip->ecc.correct(chip, p, oob, NULL);
3388 oob += eccbytes;
3391 ret = nand_read_data_op(chip, oob, chip->ecc.postpad,
3396 oob += chip->ecc.postpad;
3403 oob - eccpadbytes,
3417 /* Calculate remaining oob bytes */
3418 i = mtd->oobsize - (oob - chip->oob_poi);
3420 ret = nand_read_data_op(chip, oob, i, false, false);
3429 * nand_transfer_oob - [INTERN] Transfer oob to client buffer
3431 * @oob: oob destination address
3432 * @ops: oob ops structure
3433 * @len: size of oob to transfer
3435 static uint8_t *nand_transfer_oob(struct nand_chip *chip, uint8_t *oob,
3445 memcpy(oob, chip->oob_poi + ops->ooboffs, len);
3446 return oob + len;
3449 ret = mtd_ooblayout_get_databytes(mtd, oob, chip->oob_poi,
3452 return oob + len;
3539 * @ops: oob ops structure
3553 uint8_t *bufpoi, *oob, *buf;
3572 oob = ops->oobbuf;
3573 oob_required = oob ? 1 : 0;
3593 if (realpage != chip->pagecache.page || oob) {
3610 !oob)
3628 if (!NAND_HAS_SUBPAGE_READ(chip) && !oob &&
3640 if (unlikely(oob)) {
3644 oob = nand_transfer_oob(chip, oob, ops,
3709 if (oob)
3817 * data-ecc-data-ecc ... ecc-oob
3819 * data-pad-ecc-pad-data-pad .... ecc-pad-oob
3879 * @ops: oob operations description structure
3961 * @ops: oob operation description structure
4021 * Not for syndrome calculating ECC controllers, which use a special oob layout.
4087 * We need a special oob layout and handling even when ECC isn't checked.
4096 uint8_t *oob = chip->oob_poi;
4111 ret = nand_write_data_op(chip, oob, chip->ecc.prepad,
4116 oob += chip->ecc.prepad;
4119 ret = nand_write_data_op(chip, oob, eccbytes, false);
4123 oob += eccbytes;
4126 ret = nand_write_data_op(chip, oob, chip->ecc.postpad,
4131 oob += chip->ecc.postpad;
4135 size = mtd->oobsize - (oob - chip->oob_poi);
4137 ret = nand_write_data_op(chip, oob, size, false);
4270 /* copy calculated ECC for whole page to chip->buffer->oob */
4295 * need a special oob layout and handling.
4305 uint8_t *oob = chip->oob_poi;
4320 ret = nand_write_data_op(chip, oob, chip->ecc.prepad,
4325 oob += chip->ecc.prepad;
4328 chip->ecc.calculate(chip, p, oob);
4330 ret = nand_write_data_op(chip, oob, eccbytes, false);
4334 oob += eccbytes;
4337 ret = nand_write_data_op(chip, oob, chip->ecc.postpad,
4342 oob += chip->ecc.postpad;
4346 /* Calculate remaining oob bytes */
4347 i = mtd->oobsize - (oob - chip->oob_poi);
4349 ret = nand_write_data_op(chip, oob, i, false);
4401 * @ops: oob operations description structure
4415 uint8_t *oob = ops->oobbuf;
4418 int oob_required = oob ? 1 : 0;
4454 /* Don't allow multipage oob writes with offset */
4455 if (oob && ops->ooboffs && (ops->ooboffs + ops->ooblen > oobmaxlen)) {
4489 if (unlikely(oob)) {
4491 oob = nand_fill_oob(chip, oob, len, ops);
4522 if (unlikely(oob))
4569 * @ops: oob operation description structure
6294 /* Set the internal oob buffer location, just after the page data */
6329 WARN(1, "No oob scheme defined for oobsize %d\n",