Home
last modified time | relevance | path

Searched full:mtd (Results 1 – 25 of 565) sorted by relevance

12345678910>>...23

/linux/drivers/mtd/
H A Dmtdcore.c3 * Core registration and callback routines for MTD
35 #include <linux/mtd/mtd.h>
36 #include <linux/mtd/partitions.h>
46 struct mtd_info *mtd = dev_get_drvdata(dev); in mtd_cls_suspend() local
48 return mtd ? mtd_suspend(mtd) : 0; in mtd_cls_suspend()
53 struct mtd_info *mtd = dev_get_drvdata(dev); in mtd_cls_resume() local
55 if (mtd) in mtd_cls_resume()
56 mtd_resume(mtd); in mtd_cls_resume()
67 .name = "mtd",
89 /* REVISIT once MTD uses the driver model better, whoever allocates
[all …]
H A Dmtdchar.c22 #include <linux/mtd/mtd.h>
23 #include <linux/mtd/partitions.h>
24 #include <linux/mtd/map.h>
31 * Data structure to hold the pointer to the mtd device as well
35 struct mtd_info *mtd; member
42 return fixed_size_llseek(file, offset, orig, mfi->mtd->size); in mtdchar_lseek()
50 struct mtd_info *mtd; in mtdchar_open() local
59 mtd = get_mtd_device(NULL, devnum); in mtdchar_open()
61 if (IS_ERR(mtd)) in mtdchar_open()
62 return PTR_ERR(mtd); in mtdchar_open()
[all …]
H A Dmtdconcat.c3 * MTD device concatenation layer
18 #include <linux/mtd/mtd.h>
19 #include <linux/mtd/concat.h>
30 struct mtd_info mtd; member
43 * Given a pointer to the MTD object in the mtd_concat structure,
49 * MTD methods which look up the relevant subdevice, translate the
54 concat_read(struct mtd_info *mtd, loff_t from, size_t len, in concat_read() argument
57 struct mtd_concat *concat = CONCAT(mtd); in concat_read()
83 mtd->ecc_stats.failed++; in concat_read()
86 mtd->ecc_stats.corrected++; in concat_read()
[all …]
H A Dmtdsuper.c2 /* MTD-based superblock management
11 #include <linux/mtd/super.h>
23 * get a superblock on an MTD-backed filesystem
26 struct mtd_info *mtd, in mtd_get_sb() argument
33 sb = sget_dev(fc, MKDEV(MTD_BLOCK_MAJOR, mtd->index)); in mtd_get_sb()
40 mtd->index, mtd->name); in mtd_get_sb()
41 put_mtd_device(mtd); in mtd_get_sb()
45 mtd->index, mtd->name); in mtd_get_sb()
54 sb->s_mtd = mtd; in mtd_get_sb()
74 * get a superblock on an MTD-backed filesystem by MTD device number
[all …]
H A Dmtdoops.c3 * MTD Oops/Panic logger
22 #include <linux/mtd/mtd.h>
25 /* Maximum MTD partition size */
31 "record size for MTD OOPS pages in bytes (default 4096)");
36 "name or index number of the MTD device to use");
58 struct mtd_info *mtd; member
85 struct mtd_info *mtd = cxt->mtd; in mtdoops_erase_block() local
86 u32 start_page_offset = mtd_div_by_eb(offset, mtd) * mtd->erasesize; in mtdoops_erase_block()
88 u32 erase_pages = mtd->erasesize / record_size; in mtdoops_erase_block()
94 erase.len = mtd->erasesize; in mtdoops_erase_block()
[all …]
H A DKconfig1 menuconfig MTD config
2 tristate "Memory Technology Device (MTD) support"
7 will provide the generic support for MTD drivers to register
8 themselves with the kernel and for potential users of MTD devices
11 particular hardware and users of MTD devices. If unsure, say N.
13 if MTD
16 tristate "MTD tests support (DANGEROUS)"
19 This option includes various MTD tests into compilation. The tests
23 WARNING: some of the tests will ERASE entire MTD device which they
27 source "drivers/mtd/parsers/Kconfig"
[all …]
H A Dmtdblock.c3 * Direct MTD block device access
18 #include <linux/mtd/mtd.h>
19 #include <linux/mtd/blktrans.h>
44 static int erase_write (struct mtd_info *mtd, unsigned long pos, in erase_write() argument
57 ret = mtd_erase(mtd, &erase); in erase_write()
61 pos, len, mtd->name); in erase_write()
69 ret = mtd_write(mtd, pos, len, &retlen, buf); in erase_write()
80 struct mtd_info *mtd = mtdblk->mbd.mtd; in write_cached_data() local
87 "at 0x%lx, size 0x%x\n", mtd->name, in write_cached_data()
90 ret = erase_write (mtd, mtdblk->cache_offset, in write_cached_data()
[all …]
/linux/include/linux/mtd/
H A Dmtd.h17 #include <mtd/mtd-abi.h>
37 uint64_t offset; /* At which this region starts, from the beginning of the MTD */
64 * Note, some MTD drivers do not allow you to write more than one OOB area at
65 * one go. If you try to do that on such an MTD device, -EINVAL will be
66 * returned. If you want to make your implementation portable on all kind of MTD
107 int (*ecc)(struct mtd_info *mtd, int section,
109 int (*free)(struct mtd_info *mtd, int section,
168 * write-unit <-> (pair + group) conversions, we ask the MTD drivers to
171 * MTD users will then be able to query these information by using the
174 * @ngroups is here to help MTD users iterating over all the pages in a
[all …]
/linux/drivers/mtd/ubi/
H A Dgluebi.c9 * This is a small driver which implements fake MTD devices on top of UBI
11 * MTD-oriented software (including all the legacy software) work on top of
14 * Gluebi emulates MTD devices of "MTD_UBIVOLUME" type. Their minimal I/O unit
15 * size (@mtd->writesize) is equivalent to the UBI minimal I/O unit. The
26 #include <linux/mtd/ubi.h>
27 #include <linux/mtd/mtd.h>
36 * @mtd: emulated MTD device description object
44 struct mtd_info mtd; member
77 * gluebi_get_device - get MTD device reference.
78 * @mtd: the MTD device description object
[all …]
H A Dbuild.c13 * When UBI is initialized, it attaches all the MTD devices specified as the
14 * module load parameters or the kernel boot parameters. If MTD devices were
15 * specified, UBI does not attach any MTD device, but it is possible to do
26 #include <linux/mtd/partitions.h>
35 /* Maximum length of the 'mtd=' parameter */
38 /* Maximum number of comma-separated items in the 'mtd=' parameter */
51 * struct mtd_dev_param - MTD device parameter description data structure.
52 * @name: MTD character device node path, MTD device name, or MTD device number
72 /* MTD devices specification parameters */
383 ret = sprintf(buf, "%d\n", ubi->mtd->index); in dev_attribute_show()
[all …]
/linux/drivers/mtd/nand/raw/
H A Dmpc5121_nfc.c21 #include <linux/mtd/mtd.h>
22 #include <linux/mtd/rawnand.h>
23 #include <linux/mtd/partitions.h>
119 static void mpc5121_nfc_done(struct mtd_info *mtd);
122 static inline u16 nfc_read(struct mtd_info *mtd, uint reg) in nfc_read() argument
124 struct nand_chip *chip = mtd_to_nand(mtd); in nfc_read()
131 static inline void nfc_write(struct mtd_info *mtd, uint reg, u16 val) in nfc_write() argument
133 struct nand_chip *chip = mtd_to_nand(mtd); in nfc_write()
140 static inline void nfc_set(struct mtd_info *mtd, uint reg, u16 bits) in nfc_set() argument
142 nfc_write(mtd, reg, nfc_read(mtd, reg) | bits); in nfc_set()
[all …]
/linux/Documentation/ABI/testing/
H A Dsysfs-class-mtd1 What: /sys/class/mtd/
4 Contact: linux-mtd@lists.infradead.org
6 The mtd/ class subdirectory belongs to the MTD subsystem
7 (MTD core).
9 What: /sys/class/mtd/mtdX/
12 Contact: linux-mtd@lists.infradead.org
14 The /sys/class/mtd/mtd{0,1,2,3,...} directories correspond
19 What: /sys/class/mtd/mtdXro/
22 Contact: linux-mtd@lists.infradead.org
25 nodes for /sys/class/mtd/mtdX/ .
[all …]
/linux/drivers/mtd/chips/
H A Dmap_ram.c15 #include <linux/mtd/mtd.h>
16 #include <linux/mtd/map.h>
24 static int mapram_point (struct mtd_info *mtd, loff_t from, size_t len,
26 static int mapram_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
37 struct mtd_info *mtd; in map_ram_probe() local
60 mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); in map_ram_probe()
61 if (!mtd) in map_ram_probe()
65 mtd->priv = map; in map_ram_probe()
66 mtd->name = map->name; in map_ram_probe()
67 mtd->type = MTD_RAM; in map_ram_probe()
[all …]
H A Dmap_rom.c16 #include <linux/mtd/mtd.h>
17 #include <linux/mtd/map.h>
23 static int maprom_erase (struct mtd_info *mtd, struct erase_info *info);
24 static int maprom_point (struct mtd_info *mtd, loff_t from, size_t len,
26 static int maprom_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
46 struct mtd_info *mtd; in map_rom_probe() local
48 mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); in map_rom_probe()
49 if (!mtd) in map_rom_probe()
53 mtd->priv = map; in map_rom_probe()
54 mtd->name = map->name; in map_rom_probe()
[all …]
H A Dmap_absent.c6 * This map driver is used to allocate "placeholder" MTD
9 * registration of MTD device nodes regardless of probe outcome.
27 #include <linux/mtd/mtd.h>
28 #include <linux/mtd/map.h>
47 struct mtd_info *mtd; in map_absent_probe() local
49 mtd = kzalloc(sizeof(*mtd), GFP_KERNEL); in map_absent_probe()
50 if (!mtd) { in map_absent_probe()
55 mtd->priv = map; in map_absent_probe()
56 mtd->name = map->name; in map_absent_probe()
57 mtd->type = MTD_ABSENT; in map_absent_probe()
[all …]
/linux/drivers/mtd/devices/
H A Dmtdram.c2 * mtdram - a test mtd device
18 #include <linux/mtd/mtd.h>
19 #include <linux/mtd/mtdram.h>
34 // We could store these in the mtd structure, but we only support 1 device..
37 static int check_offs_len(struct mtd_info *mtd, loff_t ofs, uint64_t len) in check_offs_len() argument
42 if (mtd_mod_by_eb(ofs, mtd)) { in check_offs_len()
48 if (mtd_mod_by_eb(len, mtd)) { in check_offs_len()
56 static int ram_erase(struct mtd_info *mtd, struct erase_info *instr) in ram_erase() argument
58 if (check_offs_len(mtd, instr->addr, instr->len)) in ram_erase()
60 memset((char *)mtd->priv + instr->addr, 0xff, instr->len); in ram_erase()
[all …]
H A Dpowernv_flash.c3 * OPAL PNOR flash MTD abstraction
16 #include <linux/mtd/mtd.h>
17 #include <linux/mtd/partitions.h>
26 * This driver creates the a Linux MTD abstraction for platform PNOR flash
31 struct mtd_info mtd; member
42 * Don't return -ERESTARTSYS if we can't get a token, the MTD core
46 static int powernv_flash_async_op(struct mtd_info *mtd, enum flash_op op, in powernv_flash_async_op() argument
49 struct powernv_flash *info = (struct powernv_flash *)mtd->priv; in powernv_flash_async_op()
50 struct device *dev = &mtd->dev; in powernv_flash_async_op()
87 * If we return the mtd core will free the in powernv_flash_async_op()
[all …]
/linux/drivers/mtd/tests/
H A Dstresstest.c5 * Test random reads, writes and erases on MTD device.
16 #include <linux/mtd/mtd.h>
26 MODULE_PARM_DESC(dev, "MTD device number to use");
32 static struct mtd_info *mtd; variable
73 if (offs >= mtd->erasesize) in do_read()
74 offs -= mtd->erasesize; in do_read()
75 if (offs + len > mtd->erasesize) in do_read()
76 len = mtd->erasesize - offs; in do_read()
78 addr = (loff_t)eb * mtd->erasesize + offs; in do_read()
79 return mtdtest_read(mtd, addr, len, readbuf); in do_read()
[all …]
H A Dspeedtest.c5 * Test read and write speed of a MTD device.
17 #include <linux/mtd/mtd.h>
26 MODULE_PARM_DESC(dev, "MTD device number to use");
33 static struct mtd_info *mtd; variable
47 loff_t addr = (loff_t)ebnum * mtd->erasesize; in multiblock_erase()
51 ei.len = mtd->erasesize * blocks; in multiblock_erase()
53 err = mtd_erase(mtd, &ei); in multiblock_erase()
65 loff_t addr = (loff_t)ebnum * mtd->erasesize; in write_eraseblock()
67 return mtdtest_write(mtd, addr, mtd->erasesize, iobuf); in write_eraseblock()
73 loff_t addr = (loff_t)ebnum * mtd->erasesize; in write_eraseblock_by_page()
[all …]
H A Dreadtest.c5 * Check MTD device read.
16 #include <linux/mtd/mtd.h>
24 MODULE_PARM_DESC(dev, "MTD device number to use");
26 static struct mtd_info *mtd; variable
38 loff_t addr = (loff_t)ebnum * mtd->erasesize; in read_eraseblock_by_page()
44 ret = mtdtest_read(mtd, addr, pgsize, buf); in read_eraseblock_by_page()
49 if (mtd->oobsize) { in read_eraseblock_by_page()
55 ops.ooblen = mtd->oobsize; in read_eraseblock_by_page()
60 ret = mtd_read_oob(mtd, addr, &ops); in read_eraseblock_by_page()
62 ops.oobretlen != mtd->oobsize) { in read_eraseblock_by_page()
[all …]
H A Dnandbiterrs.c35 #include <linux/mtd/mtd.h>
37 #include <linux/mtd/rawnand.h>
43 MODULE_PARM_DESC(dev, "MTD device number to use");
67 static struct mtd_info *mtd; /* MTD device */ variable
95 return mtdtest_write(mtd, offset, mtd->writesize, wbuffer); in write_page()
108 ops.len = mtd->writesize; in rewrite_page()
116 err = mtd_write_oob(mtd, offset, &ops); in rewrite_page()
117 if (err || ops.retlen != mtd->writesize) { in rewrite_page()
137 /* Saving last mtd stats */ in read_page()
138 memcpy(&oldstats, &mtd->ecc_stats, sizeof(oldstats)); in read_page()
[all …]
/linux/drivers/net/ethernet/sfc/siena/
H A Dmtd.c9 #include <linux/mtd/mtd.h>
16 #define to_efx_mtd_partition(mtd) \ argument
17 container_of(mtd, struct efx_mtd_partition, mtd)
19 /* MTD interface */
21 static int efx_mtd_erase(struct mtd_info *mtd, struct erase_info *erase) in efx_mtd_erase() argument
23 struct efx_nic *efx = mtd->priv; in efx_mtd_erase()
25 return efx->type->mtd_erase(mtd, erase->addr, erase->len); in efx_mtd_erase()
28 static void efx_mtd_sync(struct mtd_info *mtd) in efx_mtd_sync() argument
30 struct efx_mtd_partition *part = to_efx_mtd_partition(mtd); in efx_mtd_sync()
31 struct efx_nic *efx = mtd->priv; in efx_mtd_sync()
[all …]
/linux/drivers/net/ethernet/sfc/
H A Dmtd.c9 #include <linux/mtd/mtd.h>
16 #define to_efx_mtd_partition(mtd) \ argument
17 container_of(mtd, struct efx_mtd_partition, mtd)
19 /* MTD interface */
21 static int efx_mtd_erase(struct mtd_info *mtd, struct erase_info *erase) in efx_mtd_erase() argument
23 struct efx_nic *efx = mtd->priv; in efx_mtd_erase()
25 return efx->type->mtd_erase(mtd, erase->addr, erase->len); in efx_mtd_erase()
28 static void efx_mtd_sync(struct mtd_info *mtd) in efx_mtd_sync() argument
30 struct efx_mtd_partition *part = to_efx_mtd_partition(mtd); in efx_mtd_sync()
31 struct efx_nic *efx = mtd->priv; in efx_mtd_sync()
[all …]
/linux/drivers/net/ethernet/sfc/falcon/
H A Dmtd.c9 #include <linux/mtd/mtd.h>
16 #define to_ef4_mtd_partition(mtd) \ argument
17 container_of(mtd, struct ef4_mtd_partition, mtd)
19 /* MTD interface */
21 static int ef4_mtd_erase(struct mtd_info *mtd, struct erase_info *erase) in ef4_mtd_erase() argument
23 struct ef4_nic *efx = mtd->priv; in ef4_mtd_erase()
25 return efx->type->mtd_erase(mtd, erase->addr, erase->len); in ef4_mtd_erase()
28 static void ef4_mtd_sync(struct mtd_info *mtd) in ef4_mtd_sync() argument
30 struct ef4_mtd_partition *part = to_ef4_mtd_partition(mtd); in ef4_mtd_sync()
31 struct ef4_nic *efx = mtd->priv; in ef4_mtd_sync()
[all …]
/linux/drivers/mtd/parsers/
H A Dafs.c4 drivers/mtd/afs.c: ARM Flash Layout/Partitioning
22 #include <linux/mtd/mtd.h>
23 #include <linux/mtd/map.h>
24 #include <linux/mtd/partitions.h>
78 static bool afs_is_v1(struct mtd_info *mtd, u_int off) in afs_is_v1() argument
81 u_int ptr = off + mtd->erasesize - 12; in afs_is_v1()
86 ret = mtd_read(mtd, ptr, 4, &sz, (u_char *)&magic); in afs_is_v1()
88 printk(KERN_ERR "AFS: mtd read failed at 0x%x: %d\n", in afs_is_v1()
98 static bool afs_is_v2(struct mtd_info *mtd, u_int off) in afs_is_v2() argument
101 u_int ptr = off + mtd->erasesize - 8; in afs_is_v2()
[all …]

12345678910>>...23