projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
[yaffs2.git]
/
yaffs_nand.c
diff --git
a/yaffs_nand.c
b/yaffs_nand.c
index 240abc4f5390ed2a79618d649289835c321e32fe..0d8499bdc63007490533528b74174e84cd28ea96 100644
(file)
--- a/
yaffs_nand.c
+++ b/
yaffs_nand.c
@@
-35,7
+35,7
@@
int yaffs_rd_chunk_tags_nand(struct yaffs_dev *dev, int nand_chunk,
if (!tags)
tags = &local_tags;
if (!tags)
tags = &local_tags;
- result = dev->
param
.read_chunk_tags_fn(dev, flash_chunk, buffer, tags);
+ result = dev->
tagger
.read_chunk_tags_fn(dev, flash_chunk, buffer, tags);
if (tags && tags->ecc_result > YAFFS_ECC_RESULT_NO_ERROR) {
struct yaffs_block_info *bi;
if (tags && tags->ecc_result > YAFFS_ECC_RESULT_NO_ERROR) {
struct yaffs_block_info *bi;
@@
-68,7
+68,7
@@
int yaffs_wr_chunk_tags_nand(struct yaffs_dev *dev,
"Writing chunk %d tags %d %d",
nand_chunk, tags->obj_id, tags->chunk_id);
"Writing chunk %d tags %d %d",
nand_chunk, tags->obj_id, tags->chunk_id);
- result = dev->
param
.write_chunk_tags_fn(dev, flash_chunk,
+ result = dev->
tagger
.write_chunk_tags_fn(dev, flash_chunk,
buffer, tags);
yaffs_summary_add(dev, tags, nand_chunk);
buffer, tags);
yaffs_summary_add(dev, tags, nand_chunk);
@@
-80,7
+80,11
@@
int yaffs_mark_bad(struct yaffs_dev *dev, int block_no)
{
block_no -= dev->block_offset;
dev->n_bad_markings++;
{
block_no -= dev->block_offset;
dev->n_bad_markings++;
- return dev->param.mark_bad_fn(dev, block_no);
+
+ if (dev->param.disable_bad_block_marking)
+ return YAFFS_OK;
+
+ return dev->tagger.mark_bad_fn(dev, block_no);
}
}
@@
-90,7
+94,7
@@
int yaffs_query_init_block_state(struct yaffs_dev *dev,
u32 *seq_number)
{
block_no -= dev->block_offset;
u32 *seq_number)
{
block_no -= dev->block_offset;
- return dev->
param
.query_block_fn(dev, block_no, state, seq_number);
+ return dev->
tagger
.query_block_fn(dev, block_no, state, seq_number);
}
int yaffs_erase_block(struct yaffs_dev *dev, int block_no)
}
int yaffs_erase_block(struct yaffs_dev *dev, int block_no)
@@
-99,20
+103,20
@@
int yaffs_erase_block(struct yaffs_dev *dev, int block_no)
block_no -= dev->block_offset;
dev->n_erasures++;
block_no -= dev->block_offset;
dev->n_erasures++;
- result = dev->
param
.drv_erase_fn(dev, block_no);
+ result = dev->
drv
.drv_erase_fn(dev, block_no);
return result;
}
int yaffs_init_nand(struct yaffs_dev *dev)
{
return result;
}
int yaffs_init_nand(struct yaffs_dev *dev)
{
- if (dev->
param
.drv_initialise_fn)
- return dev->
param
.drv_initialise_fn(dev);
+ if (dev->
drv
.drv_initialise_fn)
+ return dev->
drv
.drv_initialise_fn(dev);
return YAFFS_OK;
}
int yaffs_deinit_nand(struct yaffs_dev *dev)
{
return YAFFS_OK;
}
int yaffs_deinit_nand(struct yaffs_dev *dev)
{
- if (dev->
param
.drv_deinitialise_fn)
- return dev->
param
.drv_deinitialise_fn(dev);
+ if (dev->
drv
.drv_deinitialise_fn)
+ return dev->
drv
.drv_deinitialise_fn(dev);
return YAFFS_OK;
}
return YAFFS_OK;
}