Lines Matching refs:oob

340  * nand_fill_oob - [INTERN] Transfer client buffer to oob
342 * @oob: oob data buffer
343 * @len: oob data write length
344 * @ops: oob ops structure
346 static uint8_t *nand_fill_oob(struct nand_chip *chip, uint8_t *oob, size_t len,
362 memcpy(chip->oob_poi + ops->ooboffs, oob, len);
363 return oob + len;
366 ret = mtd_ooblayout_set_databytes(mtd, oob, chip->oob_poi,
369 return oob + len;
381 * @ops: oob operation description structure
2594 * Not for syndrome calculating ECC controllers, which use a special oob layout.
2665 * We need a special oob layout and handling even when OOB isn't used.
2673 uint8_t *oob = chip->oob_poi;
2688 ret = nand_read_data_op(chip, oob, chip->ecc.prepad,
2693 oob += chip->ecc.prepad;
2696 ret = nand_read_data_op(chip, oob, eccbytes, false, false);
2700 oob += eccbytes;
2703 ret = nand_read_data_op(chip, oob, chip->ecc.postpad,
2708 oob += chip->ecc.postpad;
2712 size = mtd->oobsize - (oob - chip->oob_poi);
2714 ret = nand_read_data_op(chip, oob, size, false, false);
2886 * Not for syndrome calculating ECC controllers which need a special oob layout.
2958 * need a special oob layout and handling.
2969 uint8_t *oob = chip->oob_poi;
2986 ret = nand_read_data_op(chip, oob, chip->ecc.prepad,
2991 oob += chip->ecc.prepad;
2996 ret = nand_read_data_op(chip, oob, eccbytes, false, false);
3000 stat = chip->ecc.correct(chip, p, oob, NULL);
3002 oob += eccbytes;
3005 ret = nand_read_data_op(chip, oob, chip->ecc.postpad,
3010 oob += chip->ecc.postpad;
3017 oob - eccpadbytes,
3031 /* Calculate remaining oob bytes */
3032 i = mtd->oobsize - (oob - chip->oob_poi);
3034 ret = nand_read_data_op(chip, oob, i, false, false);
3043 * nand_transfer_oob - [INTERN] Transfer oob to client buffer
3045 * @oob: oob destination address
3046 * @ops: oob ops structure
3047 * @len: size of oob to transfer
3049 static uint8_t *nand_transfer_oob(struct nand_chip *chip, uint8_t *oob,
3059 memcpy(oob, chip->oob_poi + ops->ooboffs, len);
3060 return oob + len;
3063 ret = mtd_ooblayout_get_databytes(mtd, oob, chip->oob_poi,
3066 return oob + len;
3111 * @ops: oob ops structure
3125 uint8_t *bufpoi, *oob, *buf;
3140 oob = ops->oobbuf;
3141 oob_required = oob ? 1 : 0;
3159 if (realpage != chip->pagecache.page || oob) {
3176 !oob)
3194 if (!NAND_HAS_SUBPAGE_READ(chip) && !oob &&
3206 if (unlikely(oob)) {
3210 oob = nand_transfer_oob(chip, oob, ops,
3273 if (oob)
3381 * data-ecc-data-ecc ... ecc-oob
3383 * data-pad-ecc-pad-data-pad .... ecc-pad-oob
3443 * @ops: oob operations description structure
3521 * @ops: oob operation description structure
3571 * Not for syndrome calculating ECC controllers, which use a special oob layout.
3637 * We need a special oob layout and handling even when ECC isn't checked.
3646 uint8_t *oob = chip->oob_poi;
3661 ret = nand_write_data_op(chip, oob, chip->ecc.prepad,
3666 oob += chip->ecc.prepad;
3669 ret = nand_write_data_op(chip, oob, eccbytes, false);
3673 oob += eccbytes;
3676 ret = nand_write_data_op(chip, oob, chip->ecc.postpad,
3681 oob += chip->ecc.postpad;
3685 size = mtd->oobsize - (oob - chip->oob_poi);
3687 ret = nand_write_data_op(chip, oob, size, false);
3820 /* copy calculated ECC for whole page to chip->buffer->oob */
3845 * need a special oob layout and handling.
3855 uint8_t *oob = chip->oob_poi;
3870 ret = nand_write_data_op(chip, oob, chip->ecc.prepad,
3875 oob += chip->ecc.prepad;
3878 chip->ecc.calculate(chip, p, oob);
3880 ret = nand_write_data_op(chip, oob, eccbytes, false);
3884 oob += eccbytes;
3887 ret = nand_write_data_op(chip, oob, chip->ecc.postpad,
3892 oob += chip->ecc.postpad;
3896 /* Calculate remaining oob bytes */
3897 i = mtd->oobsize - (oob - chip->oob_poi);
3899 ret = nand_write_data_op(chip, oob, i, false);
3951 * @ops: oob operations description structure
3965 uint8_t *oob = ops->oobbuf;
3968 int oob_required = oob ? 1 : 0;
4000 /* Don't allow multipage oob writes with offset */
4001 if (oob && ops->ooboffs && (ops->ooboffs + ops->ooblen > oobmaxlen)) {
4035 if (unlikely(oob)) {
4037 oob = nand_fill_oob(chip, oob, len, ops);
4068 if (unlikely(oob))
4115 * @ops: oob operation description structure
5630 /* Set the internal oob buffer location, just after the page data */
5663 WARN(1, "No oob scheme defined for oobsize %d\n",