Lines Matching refs:dfu
22 static int nand_block_op(enum dfu_op op, struct dfu_entity *dfu, in nand_block_op() argument
32 *len = dfu->data.nand.size; in nand_block_op()
36 start = dfu->data.nand.start + offset + dfu->bad_skip; in nand_block_op()
37 lim = dfu->data.nand.start + dfu->data.nand.size - start; in nand_block_op()
83 dfu->bad_skip += actual - count; in nand_block_op()
88 static inline int nand_block_write(struct dfu_entity *dfu, in nand_block_write() argument
91 return nand_block_op(DFU_OP_WRITE, dfu, offset, buf, len); in nand_block_write()
94 static inline int nand_block_read(struct dfu_entity *dfu, in nand_block_read() argument
97 return nand_block_op(DFU_OP_READ, dfu, offset, buf, len); in nand_block_read()
100 static int dfu_write_medium_nand(struct dfu_entity *dfu, in dfu_write_medium_nand() argument
105 switch (dfu->layout) { in dfu_write_medium_nand()
107 ret = nand_block_write(dfu, offset, buf, len); in dfu_write_medium_nand()
111 dfu_get_layout(dfu->layout)); in dfu_write_medium_nand()
117 int dfu_get_medium_size_nand(struct dfu_entity *dfu, u64 *size) in dfu_get_medium_size_nand() argument
119 *size = dfu->data.nand.size; in dfu_get_medium_size_nand()
124 static int dfu_read_medium_nand(struct dfu_entity *dfu, u64 offset, void *buf, in dfu_read_medium_nand() argument
129 switch (dfu->layout) { in dfu_read_medium_nand()
131 ret = nand_block_read(dfu, offset, buf, len); in dfu_read_medium_nand()
135 dfu_get_layout(dfu->layout)); in dfu_read_medium_nand()
141 static int dfu_flush_medium_nand(struct dfu_entity *dfu) in dfu_flush_medium_nand() argument
147 if (dfu->data.nand.ubi) { in dfu_flush_medium_nand()
159 off = dfu->offset; in dfu_flush_medium_nand()
168 opts.offset = dfu->data.nand.start + off + in dfu_flush_medium_nand()
169 dfu->bad_skip; in dfu_flush_medium_nand()
170 opts.length = dfu->data.nand.start + in dfu_flush_medium_nand()
171 dfu->data.nand.size - opts.offset; in dfu_flush_medium_nand()
180 unsigned int dfu_polltimeout_nand(struct dfu_entity *dfu) in dfu_polltimeout_nand() argument
186 if (dfu->data.nand.ubi) in dfu_polltimeout_nand()
192 int dfu_fill_entity_nand(struct dfu_entity *dfu, char *devstr, char *s) in dfu_fill_entity_nand() argument
198 dfu->data.nand.ubi = 0; in dfu_fill_entity_nand()
199 dfu->dev_type = DFU_DEV_NAND; in dfu_fill_entity_nand()
202 dfu->layout = DFU_RAW_ADDR; in dfu_fill_entity_nand()
203 dfu->data.nand.start = simple_strtoul(s, &s, 16); in dfu_fill_entity_nand()
205 dfu->data.nand.size = simple_strtoul(s, &s, 16); in dfu_fill_entity_nand()
213 dfu->layout = DFU_RAW_ADDR; in dfu_fill_entity_nand()
230 dfu->data.nand.start = pi->offset; in dfu_fill_entity_nand()
231 dfu->data.nand.size = pi->size; in dfu_fill_entity_nand()
233 dfu->data.nand.ubi = 1; in dfu_fill_entity_nand()
240 dfu->get_medium_size = dfu_get_medium_size_nand; in dfu_fill_entity_nand()
241 dfu->read_medium = dfu_read_medium_nand; in dfu_fill_entity_nand()
242 dfu->write_medium = dfu_write_medium_nand; in dfu_fill_entity_nand()
243 dfu->flush_medium = dfu_flush_medium_nand; in dfu_fill_entity_nand()
244 dfu->poll_timeout = dfu_polltimeout_nand; in dfu_fill_entity_nand()
247 dfu->inited = 0; in dfu_fill_entity_nand()