Home
last modified time | relevance | path

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

12345678910>>...20

/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/nand/onenand/
H A Donenand_base.c26 #include <linux/mtd/mtd.h>
27 #include <linux/mtd/onenand.h>
28 #include <linux/mtd/partitions.h>
66 static int flexonenand_ooblayout_ecc(struct mtd_info *mtd, int section, in flexonenand_ooblayout_ecc() argument
78 static int flexonenand_ooblayout_free(struct mtd_info *mtd, int section, in flexonenand_ooblayout_free() argument
102 static int onenand_ooblayout_128_ecc(struct mtd_info *mtd, int section, in onenand_ooblayout_128_ecc() argument
114 static int onenand_ooblayout_128_free(struct mtd_info *mtd, int section, in onenand_ooblayout_128_free() argument
138 static int onenand_ooblayout_32_64_ecc(struct mtd_info *mtd, int section, in onenand_ooblayout_32_64_ecc() argument
150 static int onenand_ooblayout_32_64_free(struct mtd_info *mtd, int section, in onenand_ooblayout_32_64_free() argument
153 int sections = (mtd->oobsize / 32) * 2; in onenand_ooblayout_32_64_free()
[all …]
H A Donenand_bbt.c15 #include <linux/mtd/mtd.h>
16 #include <linux/mtd/onenand.h>
47 * @mtd: MTD device structure
56 static int create_bbt(struct mtd_info *mtd, uint8_t *buf, struct nand_bbt_descr *bd, int chip) in create_bbt() argument
58 struct onenand_chip *this = mtd->priv; in create_bbt()
94 ret = onenand_bbt_read_oob(mtd, in create_bbt()
106 mtd->ecc_stats.badblocks++; in create_bbt()
113 rgn = flexonenand_region(mtd, from); in create_bbt()
114 from += mtd->eraseregions[rgn].erasesize; in create_bbt()
125 * @mtd: MTD device structure
[all …]
H A Donenand_samsung.c18 #include <linux/mtd/mtd.h>
19 #include <linux/mtd/onenand.h>
20 #include <linux/mtd/partitions.h>
123 struct mtd_info *mtd; member
218 struct onenand_chip *this = onenand->mtd->priv; in s3c_onenand_readw()
268 struct onenand_chip *this = onenand->mtd->priv; in s3c_onenand_writew()
310 static int s3c_onenand_wait(struct mtd_info *mtd, int state) in s3c_onenand_wait() argument
358 mtd->ecc_stats.failed++; in s3c_onenand_wait()
376 static int s3c_onenand_command(struct mtd_info *mtd, int cmd, loff_t addr, in s3c_onenand_command() argument
379 struct onenand_chip *this = mtd->priv; in s3c_onenand_command()
[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_obj(*mtd); 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_obj(*mtd); 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_obj(*mtd); 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 …]
H A Dsst25l.c21 #include <linux/mtd/mtd.h>
22 #include <linux/mtd/partitions.h>
49 struct mtd_info mtd; member
60 #define to_sst25l_flash(x) container_of(x, struct sst25l_flash, mtd)
166 static int sst25l_erase(struct mtd_info *mtd, struct erase_info *instr) in sst25l_erase() argument
168 struct sst25l_flash *flash = to_sst25l_flash(mtd); in sst25l_erase()
173 if ((uint32_t)instr->len % mtd->erasesize) in sst25l_erase()
176 if ((uint32_t)instr->addr % mtd->erasesize) in sst25l_erase()
198 addr += mtd->erasesize; in sst25l_erase()
206 static int sst25l_read(struct mtd_info *mtd, loff_t from, size_t len, in sst25l_read() argument
[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/mtd/
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 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/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 …]
/linux/drivers/mtd/maps/
H A Dplat-ram.c2 /* drivers/mtd/maps/plat-ram.c
20 #include <linux/mtd/mtd.h>
21 #include <linux/mtd/map.h>
22 #include <linux/mtd/partitions.h>
23 #include <linux/mtd/plat-ram.h>
27 /* private structure for each mtd platform ram device created */
31 struct mtd_info *mtd; member
77 if (info->mtd) { in platram_remove()
78 mtd_device_unregister(info->mtd); in platram_remove()
79 map_destroy(info->mtd); in platram_remove()
[all …]

12345678910>>...20