Lines Matching +full:out +full:- +full:of +full:- +full:band

2  * Copyright (c) 2006-2018, RT-Thread Development Team
4 * SPDX-License-Identifier: Apache-2.0
8 2018-09-10 heyuanjie87 first version
20 goto out; in mtd_part_alloc()
22 slave->master = master; in mtd_part_alloc()
25 slave->size = part->size; in mtd_part_alloc()
26 slave->offset = part->offset; in mtd_part_alloc()
28 out: in mtd_part_alloc()
41 if (mtd->parent.type != RT_Device_Class_MTD) in rt_mtd_get()
51 * @np number of partitions
52 * @return number of unregistered partitions
60 master->master = master; in rt_mtd_register()
61 master->parent.type = RT_Device_Class_MTD; in rt_mtd_register()
65 master->offset = parts->offset; in rt_mtd_register()
66 master->size = parts->size; in rt_mtd_register()
68 ret = rt_device_register((rt_device_t)master, parts->name, 0); in rt_mtd_register()
72 np --; in rt_mtd_register()
81 ret = rt_device_register((rt_device_t)slave, parts->name, 0); in rt_mtd_register()
85 np --; in rt_mtd_register()
97 total_blks = mtd->size/mtd->block_size; in rt_mtd_block_erase()
99 return -EINVAL; in rt_mtd_block_erase()
100 addr = mtd->offset + mtd->block_size * block; in rt_mtd_block_erase()
102 return mtd->ops->erase(mtd->master, addr, mtd->block_size); in rt_mtd_block_erase()
109 if (!mtd->ops->isbad) in rt_mtd_block_isbad()
112 total_blks = mtd->size / mtd->block_size; in rt_mtd_block_isbad()
114 return -EINVAL; in rt_mtd_block_isbad()
115 offset_blk = mtd->offset / mtd->block_size; in rt_mtd_block_isbad()
117 return mtd->ops->isbad(mtd->master, block + offset_blk); in rt_mtd_block_isbad()
124 if (!mtd->ops->markbad) in rt_mtd_block_markbad()
125 return -EOPNOTSUPP; in rt_mtd_block_markbad()
127 total_blks = mtd->size / mtd->block_size; in rt_mtd_block_markbad()
129 return -EINVAL; in rt_mtd_block_markbad()
130 offset_blk = mtd->offset / mtd->block_size; in rt_mtd_block_markbad()
132 return mtd->ops->markbad(mtd->master, block + offset_blk); in rt_mtd_block_markbad()
137 if (addr > mtd->size || (addr + size) > mtd->size) in rt_mtd_erase()
138 return -EINVAL; in rt_mtd_erase()
139 addr += mtd->offset; in rt_mtd_erase()
141 return mtd->ops->erase(mtd->master, addr, size); in rt_mtd_erase()
155 if (from < 0 || from >= (loff_t)mtd->size || len > mtd->size - from) in rt_mtd_read()
156 return -EINVAL; in rt_mtd_read()
162 ret = mtd->ops->read(mtd->master, from + mtd->offset, &desc); in rt_mtd_read()
180 if (to < 0 || to >= (loff_t)mtd->size || len > mtd->size - to) in rt_mtd_write()
181 return -EINVAL; in rt_mtd_write()
182 if (!mtd->ops->write) in rt_mtd_write()
183 return -EROFS; in rt_mtd_write()
189 ret = mtd->ops->write(mtd->master, to + mtd->offset, &desc); in rt_mtd_write()
197 * Read data and/or out-of-band
205 desc->datretlen = 0; in rt_mtd_read_oob()
206 desc->oobretlen = 0; in rt_mtd_read_oob()
208 if (from < 0 || from >= (loff_t)mtd->size) in rt_mtd_read_oob()
209 return -EINVAL; in rt_mtd_read_oob()
211 if (desc->datbuf && (desc->datlen > (mtd->size - from))) in rt_mtd_read_oob()
212 return -EINVAL; in rt_mtd_read_oob()
214 return mtd->ops->read(mtd->master, from + mtd->offset, desc); in rt_mtd_read_oob()
218 * Write data and/or out-of-band
226 desc->datretlen = 0; in rt_mtd_write_oob()
227 desc->oobretlen = 0; in rt_mtd_write_oob()
229 if (to < 0 || to >= (loff_t)mtd->size) in rt_mtd_write_oob()
230 return -EINVAL; in rt_mtd_write_oob()
232 if (desc->datbuf && (desc->datlen >(mtd->size - to))) in rt_mtd_write_oob()
233 return -EINVAL; in rt_mtd_write_oob()
235 return mtd->ops->write(mtd->master, to + mtd->offset, desc); in rt_mtd_write_oob()