annotate packages/fs/yaffs/current/src/yaffs_mtdif.c @ 425:dea4d7d250ad ecos

Move sources into packages/fs/yaffs/current/src/
author Ross Younger <wry@ecoscentric.com>
date Fri, 14 May 2010 16:03:09 +0100
parents yaffs_mtdif.c@b5309c9b6d7f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
1 /*
168
b8f20fdc3a58 normalise licence headers and attributions
wookey <wookey>
parents: 164
diff changeset
2 * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
3 *
409
b5309c9b6d7f yaffs Some cleanups.
Charles Manning <cdhmanning@gmail.com>
parents: 360
diff changeset
4 * Copyright (C) 2002-2010 Aleph One Ltd.
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
5 * for Toby Churchill Ltd and Brightstar Engineering
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
6 *
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
7 * Created by Charles Manning <charles@aleph1.co.uk>
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
8 *
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
10 * it under the terms of the GNU General Public License version 2 as
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
11 * published by the Free Software Foundation.
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
12 */
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
13
45
1f2f55618d63 If kernel/config.h is included in yportenv.h, then yportenv.h must be
marty <marty>
parents: 43
diff changeset
14 #include "yportenv.h"
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
15
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
16
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
17 #include "yaffs_mtdif.h"
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
18
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
19 #include "linux/mtd/mtd.h"
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
20 #include "linux/types.h"
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
21 #include "linux/time.h"
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
22 #include "linux/mtd/nand.h"
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
23
356
7ee0cc4ba753 Rationalise context and parameter handling
charles <charles>
parents: 271
diff changeset
24 #include "yaffs_linux.h"
7ee0cc4ba753 Rationalise context and parameter handling
charles <charles>
parents: 271
diff changeset
25
271
c0dfae9e8073 Major whitespace/style changes to match Linux checkpatch.pl code style
wookey <wookey>
parents: 198
diff changeset
26 int nandmtd_EraseBlockInNAND(yaffs_Device *dev, int blockNumber)
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
27 {
356
7ee0cc4ba753 Rationalise context and parameter handling
charles <charles>
parents: 271
diff changeset
28 struct mtd_info *mtd = yaffs_DeviceToContext(dev)->mtd;
76
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
29 __u32 addr =
358
7c3694ed38db Fix mtdif erasing to work properly for inband tags
charles <charles>
parents: 356
diff changeset
30 ((loff_t) blockNumber) * dev->param.totalBytesPerChunk
356
7ee0cc4ba753 Rationalise context and parameter handling
charles <charles>
parents: 271
diff changeset
31 * dev->param.nChunksPerBlock;
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
32 struct erase_info ei;
356
7ee0cc4ba753 Rationalise context and parameter handling
charles <charles>
parents: 271
diff changeset
33
76
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
34 int retval = 0;
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
35
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
36 ei.mtd = mtd;
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
37 ei.addr = addr;
358
7c3694ed38db Fix mtdif erasing to work properly for inband tags
charles <charles>
parents: 356
diff changeset
38 ei.len = dev->param.totalBytesPerChunk * dev->param.nChunksPerBlock;
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
39 ei.time = 1000;
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
40 ei.retries = 2;
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
41 ei.callback = NULL;
76
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
42 ei.priv = (u_long) dev;
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
43
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
44 retval = mtd->erase(mtd, &ei);
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
45
76
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
46 if (retval == 0)
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
47 return YAFFS_OK;
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
48 else
0113df80498c lindent
marty <marty>
parents: 66
diff changeset
49 return YAFFS_FAIL;
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
50 }
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
51
271
c0dfae9e8073 Major whitespace/style changes to match Linux checkpatch.pl code style
wookey <wookey>
parents: 198
diff changeset
52 int nandmtd_InitialiseNAND(yaffs_Device *dev)
7
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
53 {
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
54 return YAFFS_OK;
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
55 }
9fd733a84a74 *** empty log message ***
charles <charles>
parents:
diff changeset
56