Lines Matching refs:dfu
21 static int nand_block_op(enum dfu_op op, struct dfu_entity *dfu, in nand_block_op() argument
31 *len = dfu->data.nand.size; in nand_block_op()
35 start = dfu->data.nand.start + offset + dfu->bad_skip; in nand_block_op()
36 lim = dfu->data.nand.start + dfu->data.nand.size - start; in nand_block_op()
82 dfu->bad_skip += actual - count; in nand_block_op()
87 static inline int nand_block_write(struct dfu_entity *dfu, in nand_block_write() argument
90 return nand_block_op(DFU_OP_WRITE, dfu, offset, buf, len); in nand_block_write()
93 static inline int nand_block_read(struct dfu_entity *dfu, in nand_block_read() argument
96 return nand_block_op(DFU_OP_READ, dfu, offset, buf, len); in nand_block_read()
99 static int dfu_write_medium_nand(struct dfu_entity *dfu, in dfu_write_medium_nand() argument
104 switch (dfu->layout) { in dfu_write_medium_nand()
106 ret = nand_block_write(dfu, offset, buf, len); in dfu_write_medium_nand()
110 dfu_get_layout(dfu->layout)); in dfu_write_medium_nand()
116 int dfu_get_medium_size_nand(struct dfu_entity *dfu, u64 *size) in dfu_get_medium_size_nand() argument
118 *size = dfu->data.nand.size; in dfu_get_medium_size_nand()
123 static int dfu_read_medium_nand(struct dfu_entity *dfu, u64 offset, void *buf, in dfu_read_medium_nand() argument
128 switch (dfu->layout) { in dfu_read_medium_nand()
130 ret = nand_block_read(dfu, offset, buf, len); in dfu_read_medium_nand()
134 dfu_get_layout(dfu->layout)); in dfu_read_medium_nand()
140 static int dfu_flush_medium_nand(struct dfu_entity *dfu) in dfu_flush_medium_nand() argument
146 if (dfu->data.nand.ubi) { in dfu_flush_medium_nand()
158 off = dfu->offset; in dfu_flush_medium_nand()
167 opts.offset = dfu->data.nand.start + off + in dfu_flush_medium_nand()
168 dfu->bad_skip; in dfu_flush_medium_nand()
169 opts.length = dfu->data.nand.start + in dfu_flush_medium_nand()
170 dfu->data.nand.size - opts.offset; in dfu_flush_medium_nand()
179 unsigned int dfu_polltimeout_nand(struct dfu_entity *dfu) in dfu_polltimeout_nand() argument
185 if (dfu->data.nand.ubi) in dfu_polltimeout_nand()
191 int dfu_fill_entity_nand(struct dfu_entity *dfu, char *devstr, char *s) in dfu_fill_entity_nand() argument
196 dfu->data.nand.ubi = 0; in dfu_fill_entity_nand()
197 dfu->dev_type = DFU_DEV_NAND; in dfu_fill_entity_nand()
200 dfu->layout = DFU_RAW_ADDR; in dfu_fill_entity_nand()
201 dfu->data.nand.start = simple_strtoul(s, &s, 16); in dfu_fill_entity_nand()
203 dfu->data.nand.size = simple_strtoul(s, &s, 16); in dfu_fill_entity_nand()
210 dfu->layout = DFU_RAW_ADDR; in dfu_fill_entity_nand()
227 dfu->data.nand.start = pi->offset; in dfu_fill_entity_nand()
228 dfu->data.nand.size = pi->size; in dfu_fill_entity_nand()
230 dfu->data.nand.ubi = 1; in dfu_fill_entity_nand()
236 dfu->get_medium_size = dfu_get_medium_size_nand; in dfu_fill_entity_nand()
237 dfu->read_medium = dfu_read_medium_nand; in dfu_fill_entity_nand()
238 dfu->write_medium = dfu_write_medium_nand; in dfu_fill_entity_nand()
239 dfu->flush_medium = dfu_flush_medium_nand; in dfu_fill_entity_nand()
240 dfu->poll_timeout = dfu_polltimeout_nand; in dfu_fill_entity_nand()
243 dfu->inited = 0; in dfu_fill_entity_nand()