/linux-4.4.14/drivers/mtd/ubi/ |
D | build.c | 163 int ubi_volume_notify(struct ubi_device *ubi, struct ubi_volume *vol, int ntype) in ubi_volume_notify() argument 168 ubi_do_get_device_info(ubi, &nt.di); in ubi_volume_notify() 169 ubi_do_get_volume_info(ubi, vol, &nt.vi); in ubi_volume_notify() 176 ret = ubi_update_fastmap(ubi); in ubi_volume_notify() 178 ubi_msg(ubi, "Unable to write a new fastmap: %i", ret); in ubi_volume_notify() 195 int ubi_notify_all(struct ubi_device *ubi, int ntype, struct notifier_block *nb) in ubi_notify_all() argument 200 ubi_do_get_device_info(ubi, &nt.di); in ubi_notify_all() 202 mutex_lock(&ubi->device_mutex); in ubi_notify_all() 203 for (i = 0; i < ubi->vtbl_slots; i++) { in ubi_notify_all() 209 if (!ubi->volumes[i]) in ubi_notify_all() [all …]
|
D | wl.c | 138 static int self_check_ec(struct ubi_device *ubi, int pnum, int ec); 139 static int self_check_in_wl_tree(const struct ubi_device *ubi, 141 static int self_check_in_pq(const struct ubi_device *ubi, 188 static void wl_entry_destroy(struct ubi_device *ubi, struct ubi_wl_entry *e) in wl_entry_destroy() argument 190 ubi->lookuptbl[e->pnum] = NULL; in wl_entry_destroy() 201 static int do_work(struct ubi_device *ubi) in do_work() argument 214 down_read(&ubi->work_sem); in do_work() 215 spin_lock(&ubi->wl_lock); in do_work() 216 if (list_empty(&ubi->works)) { in do_work() 217 spin_unlock(&ubi->wl_lock); in do_work() [all …]
|
D | fastmap-wl.c | 23 struct ubi_device *ubi = container_of(wrk, struct ubi_device, fm_work); in update_fastmap_work_fn() local 25 ubi_update_fastmap(ubi); in update_fastmap_work_fn() 26 spin_lock(&ubi->wl_lock); in update_fastmap_work_fn() 27 ubi->fm_work_scheduled = 0; in update_fastmap_work_fn() 28 spin_unlock(&ubi->wl_lock); in update_fastmap_work_fn() 56 static void return_unused_pool_pebs(struct ubi_device *ubi, in return_unused_pool_pebs() argument 63 e = ubi->lookuptbl[pool->pebs[i]]; in return_unused_pool_pebs() 64 wl_tree_add(e, &ubi->free); in return_unused_pool_pebs() 65 ubi->free_count++; in return_unused_pool_pebs() 90 struct ubi_wl_entry *ubi_wl_get_fm_peb(struct ubi_device *ubi, int anchor) in ubi_wl_get_fm_peb() argument [all …]
|
D | io.c | 94 static int self_check_not_bad(const struct ubi_device *ubi, int pnum); 95 static int self_check_peb_ec_hdr(const struct ubi_device *ubi, int pnum); 96 static int self_check_ec_hdr(const struct ubi_device *ubi, int pnum, 98 static int self_check_peb_vid_hdr(const struct ubi_device *ubi, int pnum); 99 static int self_check_vid_hdr(const struct ubi_device *ubi, int pnum, 101 static int self_check_write(struct ubi_device *ubi, const void *buf, int pnum, 126 int ubi_io_read(const struct ubi_device *ubi, void *buf, int pnum, int offset, in ubi_io_read() argument 135 ubi_assert(pnum >= 0 && pnum < ubi->peb_count); in ubi_io_read() 136 ubi_assert(offset >= 0 && offset + len <= ubi->peb_size); in ubi_io_read() 139 err = self_check_not_bad(ubi, pnum); in ubi_io_read() [all …]
|
D | eba.c | 60 unsigned long long ubi_next_sqnum(struct ubi_device *ubi) in ubi_next_sqnum() argument 64 spin_lock(&ubi->ltree_lock); in ubi_next_sqnum() 65 sqnum = ubi->global_sqnum++; in ubi_next_sqnum() 66 spin_unlock(&ubi->ltree_lock); in ubi_next_sqnum() 79 static int ubi_get_compat(const struct ubi_device *ubi, int vol_id) in ubi_get_compat() argument 96 static struct ubi_ltree_entry *ltree_lookup(struct ubi_device *ubi, int vol_id, in ltree_lookup() argument 101 p = ubi->ltree.rb_node; in ltree_lookup() 135 static struct ubi_ltree_entry *ltree_add_entry(struct ubi_device *ubi, in ltree_add_entry() argument 149 spin_lock(&ubi->ltree_lock); in ltree_add_entry() 150 le1 = ltree_lookup(ubi, vol_id, lnum); in ltree_add_entry() [all …]
|
D | vmt.c | 32 static int self_check_volumes(struct ubi_device *ubi); 72 struct ubi_device *ubi; in vol_attribute_show() local 74 ubi = ubi_get_device(vol->ubi->ubi_num); in vol_attribute_show() 75 if (!ubi) in vol_attribute_show() 78 spin_lock(&ubi->volumes_lock); in vol_attribute_show() 79 if (!ubi->volumes[vol->vol_id]) { in vol_attribute_show() 80 spin_unlock(&ubi->volumes_lock); in vol_attribute_show() 81 ubi_put_device(ubi); in vol_attribute_show() 86 spin_unlock(&ubi->volumes_lock); in vol_attribute_show() 115 spin_lock(&ubi->volumes_lock); in vol_attribute_show() [all …]
|
D | vtbl.c | 67 static void self_vtbl_check(const struct ubi_device *ubi); 76 static int ubi_update_layout_vol(struct ubi_device *ubi) in ubi_update_layout_vol() argument 81 layout_vol = ubi->volumes[vol_id2idx(ubi, UBI_LAYOUT_VOLUME_ID)]; in ubi_update_layout_vol() 83 err = ubi_eba_atomic_leb_change(ubi, layout_vol, i, ubi->vtbl, in ubi_update_layout_vol() 84 ubi->vtbl_size); in ubi_update_layout_vol() 103 int ubi_change_vtbl_record(struct ubi_device *ubi, int idx, in ubi_change_vtbl_record() argument 109 ubi_assert(idx >= 0 && idx < ubi->vtbl_slots); in ubi_change_vtbl_record() 118 memcpy(&ubi->vtbl[idx], vtbl_rec, sizeof(struct ubi_vtbl_record)); in ubi_change_vtbl_record() 119 err = ubi_update_layout_vol(ubi); in ubi_change_vtbl_record() 121 self_vtbl_check(ubi); in ubi_change_vtbl_record() [all …]
|
D | ubi.h | 53 #define ubi_msg(ubi, fmt, ...) pr_notice(UBI_NAME_STR "%d: " fmt "\n", \ argument 54 ubi->ubi_num, ##__VA_ARGS__) 56 #define ubi_warn(ubi, fmt, ...) pr_warn(UBI_NAME_STR "%d warning: %s: " fmt "\n", \ argument 57 ubi->ubi_num, __func__, ##__VA_ARGS__) 59 #define ubi_err(ubi, fmt, ...) pr_err(UBI_NAME_STR "%d error: %s: " fmt "\n", \ argument 60 ubi->ubi_num, __func__, ##__VA_ARGS__) 318 struct ubi_device *ubi; member 765 int (*func)(struct ubi_device *ubi, struct ubi_work *wrk, int shutdown); 785 int ubi_add_to_av(struct ubi_device *ubi, struct ubi_attach_info *ai, int pnum, 790 struct ubi_ainf_peb *ubi_early_get_peb(struct ubi_device *ubi, [all …]
|
D | fastmap.c | 24 static inline int *init_seen(struct ubi_device *ubi) in init_seen() argument 28 if (!ubi_dbg_chk_fastmap(ubi)) in init_seen() 31 ret = kcalloc(ubi->peb_count, sizeof(int), GFP_KERNEL); in init_seen() 53 static inline void set_seen(struct ubi_device *ubi, int pnum, int *seen) in set_seen() argument 55 if (!ubi_dbg_chk_fastmap(ubi) || !seen) in set_seen() 66 static int self_check_seen(struct ubi_device *ubi, int *seen) in self_check_seen() argument 70 if (!ubi_dbg_chk_fastmap(ubi) || !seen) in self_check_seen() 73 for (pnum = 0; pnum < ubi->peb_count; pnum++) { in self_check_seen() 74 if (!seen[pnum] && ubi->lookuptbl[pnum]) { in self_check_seen() 75 ubi_err(ubi, "self-check failed for PEB %d, fastmap didn't see it", pnum); in self_check_seen() [all …]
|
D | kapi.c | 39 void ubi_do_get_device_info(struct ubi_device *ubi, struct ubi_device_info *di) in ubi_do_get_device_info() argument 41 di->ubi_num = ubi->ubi_num; in ubi_do_get_device_info() 42 di->leb_size = ubi->leb_size; in ubi_do_get_device_info() 43 di->leb_start = ubi->leb_start; in ubi_do_get_device_info() 44 di->min_io_size = ubi->min_io_size; in ubi_do_get_device_info() 45 di->max_write_size = ubi->max_write_size; in ubi_do_get_device_info() 46 di->ro_mode = ubi->ro_mode; in ubi_do_get_device_info() 47 di->cdev = ubi->cdev.dev; in ubi_do_get_device_info() 61 struct ubi_device *ubi; in ubi_get_device_info() local 65 ubi = ubi_get_device(ubi_num); in ubi_get_device_info() [all …]
|
D | misc.c | 35 int ubi_calc_data_len(const struct ubi_device *ubi, const void *buf, in ubi_calc_data_len() argument 40 ubi_assert(!(length & (ubi->min_io_size - 1))); in ubi_calc_data_len() 47 length = ALIGN(i + 1, ubi->min_io_size); in ubi_calc_data_len() 61 int ubi_check_volume(struct ubi_device *ubi, int vol_id) in ubi_check_volume() argument 65 struct ubi_volume *vol = ubi->volumes[vol_id]; in ubi_check_volume() 84 err = ubi_eba_read_leb(ubi, vol, i, buf, 0, size, 1); in ubi_check_volume() 105 void ubi_update_reserved(struct ubi_device *ubi) in ubi_update_reserved() argument 107 int need = ubi->beb_rsvd_level - ubi->beb_rsvd_pebs; in ubi_update_reserved() 109 if (need <= 0 || ubi->avail_pebs == 0) in ubi_update_reserved() 112 need = min_t(int, need, ubi->avail_pebs); in ubi_update_reserved() [all …]
|
D | attach.c | 92 static int self_check_ai(struct ubi_device *ubi, struct ubi_attach_info *ai); 192 static int validate_vid_hdr(const struct ubi_device *ubi, in validate_vid_hdr() argument 211 ubi_err(ubi, "inconsistent vol_id"); in validate_vid_hdr() 221 ubi_err(ubi, "inconsistent vol_type"); in validate_vid_hdr() 226 ubi_err(ubi, "inconsistent used_ebs"); in validate_vid_hdr() 231 ubi_err(ubi, "inconsistent data_pad"); in validate_vid_hdr() 239 ubi_err(ubi, "inconsistent VID header at PEB %d", pnum); in validate_vid_hdr() 324 int ubi_compare_lebs(struct ubi_device *ubi, const struct ubi_ainf_peb *aeb, in ubi_compare_lebs() argument 341 ubi_err(ubi, "unsupported on-flash UBI format"); in ubi_compare_lebs() 372 vh = ubi_zalloc_vid_hdr(ubi, GFP_KERNEL); in ubi_compare_lebs() [all …]
|
D | debug.h | 24 void ubi_dump_flash(struct ubi_device *ubi, int pnum, int offset, int len); 61 int ubi_self_check_all_ff(struct ubi_device *ubi, int pnum, int offset, 65 int ubi_debugfs_init_dev(struct ubi_device *ubi); 66 void ubi_debugfs_exit_dev(struct ubi_device *ubi); 75 static inline int ubi_dbg_is_bgt_disabled(const struct ubi_device *ubi) in ubi_dbg_is_bgt_disabled() argument 77 return ubi->dbg.disable_bgt; in ubi_dbg_is_bgt_disabled() 86 static inline int ubi_dbg_is_bitflip(const struct ubi_device *ubi) in ubi_dbg_is_bitflip() argument 88 if (ubi->dbg.emulate_bitflips) in ubi_dbg_is_bitflip() 100 static inline int ubi_dbg_is_write_failure(const struct ubi_device *ubi) in ubi_dbg_is_write_failure() argument 102 if (ubi->dbg.emulate_io_failures) in ubi_dbg_is_write_failure() [all …]
|
D | upd.c | 54 static int set_update_marker(struct ubi_device *ubi, struct ubi_volume *vol) in set_update_marker() argument 62 ubi_assert(ubi->vtbl[vol->vol_id].upd_marker); in set_update_marker() 67 vtbl_rec = ubi->vtbl[vol->vol_id]; in set_update_marker() 70 mutex_lock(&ubi->device_mutex); in set_update_marker() 71 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in set_update_marker() 73 mutex_unlock(&ubi->device_mutex); in set_update_marker() 87 static int clear_update_marker(struct ubi_device *ubi, struct ubi_volume *vol, in clear_update_marker() argument 95 vtbl_rec = ubi->vtbl[vol->vol_id]; in clear_update_marker() 110 mutex_lock(&ubi->device_mutex); in clear_update_marker() 111 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in clear_update_marker() [all …]
|
D | cdev.c | 62 spin_lock(&vol->ubi->volumes_lock); in get_exclusive() 66 ubi_err(vol->ubi, "%d users for volume %d", users, vol->vol_id); in get_exclusive() 74 spin_unlock(&vol->ubi->volumes_lock); in get_exclusive() 88 spin_lock(&vol->ubi->volumes_lock); in revoke_exclusive() 100 spin_unlock(&vol->ubi->volumes_lock); in revoke_exclusive() 136 vol->ubi->ubi_num, vol->vol_id, desc->mode); in vol_cdev_release() 139 ubi_warn(vol->ubi, "update of volume %d not finished, volume is damaged", in vol_cdev_release() 146 vol->upd_received, vol->upd_bytes, vol->ubi->ubi_num, in vol_cdev_release() 163 ubi_err(vol->ubi, "updating"); in vol_cdev_llseek() 174 struct ubi_device *ubi = desc->vol->ubi; in vol_cdev_fsync() local [all …]
|
D | wl.h | 7 static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); 8 static void ubi_fastmap_close(struct ubi_device *ubi); 9 static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) in ubi_fastmap_init() argument 12 *count += (ubi->fm_size / ubi->leb_size) * 2; in ubi_fastmap_init() 13 INIT_WORK(&ubi->fm_work, update_fastmap_work_fn); in ubi_fastmap_init() 15 static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, 19 static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); 20 static inline void ubi_fastmap_close(struct ubi_device *ubi) { } in ubi_fastmap_close() argument 21 static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } in ubi_fastmap_init() argument 22 static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, in may_reserve_for_fm() argument
|
D | debug.c | 34 void ubi_dump_flash(struct ubi_device *ubi, int pnum, int offset, int len) in ubi_dump_flash() argument 39 loff_t addr = (loff_t)pnum * ubi->peb_size + offset; in ubi_dump_flash() 44 err = mtd_read(ubi->mtd, addr, len, &read, buf); in ubi_dump_flash() 46 ubi_err(ubi, "err %d while reading %d bytes from PEB %d:%d, read %zd bytes", in ubi_dump_flash() 51 ubi_msg(ubi, "dumping %d bytes of data from PEB %d, offset %d", in ubi_dump_flash() 264 struct ubi_device *ubi; in dfs_file_read() local 269 ubi = ubi_get_device(ubi_num); in dfs_file_read() 270 if (!ubi) in dfs_file_read() 272 d = &ubi->dbg; in dfs_file_read() 317 ubi_put_device(ubi); in dfs_file_read() [all …]
|
D | Makefile | 1 obj-$(CONFIG_MTD_UBI) += ubi.o 3 ubi-y += vtbl.o vmt.o upd.o build.o cdev.o kapi.o eba.o io.o wl.o attach.o 4 ubi-y += misc.o debug.o 5 ubi-$(CONFIG_MTD_UBI_FASTMAP) += fastmap.o 6 ubi-$(CONFIG_MTD_UBI_BLOCK) += block.o
|
/linux-4.4.14/Documentation/ABI/stable/ |
D | sysfs-class-ubi | 1 What: /sys/class/ubi/ 6 The ubi/ class sub-directory belongs to the UBI subsystem and 10 What: /sys/class/ubi/version 33 What: /sys/class/ubi/ubiX/avail_eraseblocks 42 What: /sys/class/ubi/ubiX/bad_peb_count 49 What: /sys/class/ubi/ubiX/bgt_enabled 57 What: /sys/class/ubi/ubiX/dev 65 What: /sys/class/ubi/ubiX/eraseblock_size 74 What: /sys/class/ubi/ubiX/max_ec 81 What: /sys/class/ubi/ubiX/max_vol_count [all …]
|
/linux-4.4.14/arch/arm/boot/dts/ |
D | at91-kizboxmini.dts | 17 bootargs = "ubi.mtd=ubi"; 85 ubi@20000 { 86 label = "ubi";
|
D | at91-kizbox.dts | 18 bootargs = "ubi.mtd=ubi"; 72 ubi@20000 { 73 label = "ubi";
|
D | at91-kizbox2.dts | 17 bootargs = "ubi.mtd=ubi"; 158 ubi@20000 { 159 label = "ubi";
|
D | animeo_ip.dts | 111 ubi@60000 { 112 label = "ubi";
|
D | ge863-pro3.dtsi | 54 bootargs = "console=ttyS0,115200 root=ubi0:rootfs ubi.mtd=1 rootfstype=ubifs";
|
D | bcm4708-luxul-xwc-1000.dts | 30 label = "ubi";
|
D | aks-cdu.dts | 16 bootargs = "console=ttyS0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs";
|
D | sama5d3xcm.dtsi | 14 bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs";
|
D | at91sam9rlek.dts | 16 bootargs = "rootfstype=ubifs root=ubi0:rootfs ubi.mtd=5 rw";
|
D | at91sam9261ek.dts | 16 bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs rw";
|
D | at91sam9x5ek.dtsi | 16 bootargs = "root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs";
|
/linux-4.4.14/fs/ubifs/ |
D | super.c | 1827 ubi_close_volume(c->ubi); in ubifs_put_super() 1911 struct ubi_volume_desc *ubi; in open_ubi() local 1916 ubi = ubi_open_volume_path(name, mode); in open_ubi() 1917 if (!IS_ERR(ubi)) in open_ubi() 1918 return ubi; in open_ubi() 1952 static struct ubifs_info *alloc_ubifs_info(struct ubi_volume_desc *ubi) in alloc_ubifs_info() argument 1992 ubi_get_volume_info(ubi, &c->vi); in alloc_ubifs_info() 2006 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READWRITE); in ubifs_fill_super() 2007 if (IS_ERR(c->ubi)) { in ubifs_fill_super() 2008 err = PTR_ERR(c->ubi); in ubifs_fill_super() [all …]
|
D | io.c | 104 err = ubi_read(c->ubi, lnum, buf, offs, len); in ubifs_leb_read() 126 err = ubi_leb_write(c->ubi, lnum, buf, offs, len); in ubifs_leb_write() 146 err = ubi_leb_change(c->ubi, lnum, buf, len); in ubifs_leb_change() 166 err = ubi_leb_unmap(c->ubi, lnum); in ubifs_leb_unmap() 185 err = ubi_leb_map(c->ubi, lnum); in ubifs_leb_map() 200 err = ubi_is_mapped(c->ubi, lnum); in ubifs_is_mapped() 1012 offs, ubi_is_mapped(c->ubi, lnum)); in ubifs_read_node()
|
D | debug.c | 2585 err = ubi_leb_write(c->ubi, lnum, buf, offs, len); in dbg_leb_write() 2602 err = ubi_leb_change(c->ubi, lnum, buf, len); in dbg_leb_change() 2618 err = ubi_leb_unmap(c->ubi, lnum); in dbg_leb_unmap() 2634 err = ubi_leb_map(c->ubi, lnum); in dbg_leb_map()
|
D | ubifs.h | 1361 struct ubi_volume_desc *ubi; member
|
/linux-4.4.14/include/uapi/mtd/ |
D | Kbuild | 6 header-y += ubi-user.h
|
/linux-4.4.14/drivers/mtd/ |
D | Makefile | 36 obj-$(CONFIG_MTD_UBI) += ubi/
|
D | Kconfig | 339 source "drivers/mtd/ubi/Kconfig"
|
/linux-4.4.14/Documentation/filesystems/ |
D | ubifs.txt | 36 found in drivers/mtd/ubi. UBI is basically a volume management and 112 ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs
|
/linux-4.4.14/Documentation/ioctl/ |
D | ioctl-number.txt | 165 'O' 00-06 mtd/ubi-user.h UBI 254 'o' 00-03 mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps) 255 'o' 40-41 mtd/ubi-user.h UBI
|
/linux-4.4.14/Documentation/ABI/testing/ |
D | sysfs-class-mtd | 107 absent, ram, rom, nor, nand, mlc-nand, dataflash, ubi, unknown
|
/linux-4.4.14/ |
D | MAINTAINERS | 11044 F: drivers/mtd/ubi/ 11045 F: include/linux/mtd/ubi.h 11046 F: include/uapi/mtd/ubi-user.h
|