Lines Matching defs:ops
1499 struct mtd_oob_ops ops = {
1505 ret = mtd_read_oob(mtd, from, &ops);
1506 *retlen = ops.retlen;
1515 struct mtd_oob_ops ops = {
1521 ret = mtd_write_oob(mtd, to, &ops);
1522 *retlen = ops.retlen;
1558 struct mtd_oob_ops *ops)
1565 if (!ops->datbuf)
1566 ops->len = 0;
1568 if (!ops->oobbuf)
1569 ops->ooblen = 0;
1571 if (offs < 0 || offs + ops->len > mtd->size)
1574 if (ops->ooblen) {
1577 if (ops->ooboffs >= mtd_oobavail(mtd, ops))
1582 mtd_oobavail(mtd, ops)) - ops->ooboffs;
1583 if (ops->ooblen > maxooblen)
1591 struct mtd_oob_ops *ops)
1598 ret = master->_read_oob(master, from, ops);
1600 ret = master->_read(master, from, ops->len, &ops->retlen,
1601 ops->datbuf);
1607 struct mtd_oob_ops *ops)
1614 ret = master->_write_oob(master, to, ops);
1616 ret = master->_write(master, to, ops->len, &ops->retlen,
1617 ops->datbuf);
1623 struct mtd_oob_ops *ops)
1628 struct mtd_oob_ops adjops = *ops;
1640 oobavail = mtd_oobavail(mtd, ops);
1642 while (ops->retlen < ops->len || ops->oobretlen < ops->ooblen) {
1653 adjops.len = ops->len - ops->retlen;
1657 adjops.ooblen = ops->ooblen - ops->oobretlen;
1673 ops->retlen += adjops.retlen;
1674 ops->oobretlen += adjops.oobretlen;
1685 int mtd_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops)
1691 ops->retlen = ops->oobretlen = 0;
1693 ret_code = mtd_check_oob_ops(mtd, from, ops);
1700 if (!master->_read_oob && (!master->_read || ops->oobbuf))
1703 if (ops->stats)
1704 memset(ops->stats, 0, sizeof(*ops->stats));
1707 ret_code = mtd_io_emulated_slc(mtd, from, true, ops);
1709 ret_code = mtd_read_oob_std(mtd, from, ops);
1714 * In cases where ops->datbuf != NULL, mtd->_read_oob() has semantics
1723 if (ops->stats)
1724 ops->stats->max_bitflips = ret_code;
1730 struct mtd_oob_ops *ops)
1735 ops->retlen = ops->oobretlen = 0;
1740 ret = mtd_check_oob_ops(mtd, to, ops);
1747 if (!master->_write_oob && (!master->_write || ops->oobbuf))
1751 return mtd_io_emulated_slc(mtd, to, false, ops);
1753 return mtd_write_oob_std(mtd, to, ops);