projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More driver cleanup
[yaffs2.git]
/
yaffs_guts.c
diff --git
a/yaffs_guts.c
b/yaffs_guts.c
index 66e8c5ec41a4326e2f932aad6d6aa861b6d4ec00..3c1aa105f35fcf18f1cb73cbe06f4dd0e3e20c7d 100644
(file)
--- a/
yaffs_guts.c
+++ b/
yaffs_guts.c
@@
-609,10
+609,10
@@
static void yaffs_retire_block(struct yaffs_dev *dev, int flash_block)
memset(buffer, 0xff, dev->data_bytes_per_chunk);
memset(&tags, 0, sizeof(tags));
tags.seq_number = YAFFS_SEQUENCE_BAD_BLOCK;
memset(buffer, 0xff, dev->data_bytes_per_chunk);
memset(&tags, 0, sizeof(tags));
tags.seq_number = YAFFS_SEQUENCE_BAD_BLOCK;
- if (dev->
param
.write_chunk_tags_fn(dev, chunk_id -
-
dev->chunk_offset,
-
buffer,
-
&tags) != YAFFS_OK)
+ if (dev->
tagger
.write_chunk_tags_fn(dev, chunk_id -
+ dev->chunk_offset,
+ buffer,
+ &tags) != YAFFS_OK)
yaffs_trace(YAFFS_TRACE_ALWAYS,
"yaffs: Failed to write bad block marker to block %d",
flash_block);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"yaffs: Failed to write bad block marker to block %d",
flash_block);
@@
-2798,7
+2798,8
@@
static int yaffs_check_gc(struct yaffs_dev *dev, int background)
int erased_chunks;
int checkpt_block_adjust;
int erased_chunks;
int checkpt_block_adjust;
- if (dev->param.gc_control && (dev->param.gc_control(dev) & 1) == 0)
+ if (dev->param.gc_control_fn &&
+ (dev->param.gc_control_fn(dev) & 1) == 0)
return YAFFS_OK;
if (dev->gc_disable)
return YAFFS_OK;
if (dev->gc_disable)
@@
-4534,13
+4535,17
@@
YCHAR *yaffs_get_symlink_alias(struct yaffs_obj *obj)
static int yaffs_check_dev_fns(struct yaffs_dev *dev)
{
static int yaffs_check_dev_fns(struct yaffs_dev *dev)
{
- struct yaffs_param *param = &dev->param;
+ struct yaffs_driver *drv = &dev->drv;
+ struct yaffs_tags_handler *tagger = &dev->tagger;
/* Common functions, gotta have */
/* Common functions, gotta have */
- if (!param->drv_initialise_fn ||
- !param->drv_read_chunk_fn ||
- !param->drv_write_chunk_fn ||
- !param->drv_erase_fn)
+ if (!drv->drv_read_chunk_fn ||
+ !drv->drv_write_chunk_fn ||
+ !drv->drv_erase_fn)
+ return 0;
+
+ if (dev->param.is_yaffs2 &&
+ (!drv->drv_mark_bad_fn || !drv->drv_check_bad_fn))
return 0;
/* Install the default tags marshalling functions if needed. */
return 0;
/* Install the default tags marshalling functions if needed. */
@@
-4548,10
+4553,10
@@
static int yaffs_check_dev_fns(struct yaffs_dev *dev)
yaffs_tags_marshall_install(dev);
/* Check we now have the marshalling functions required. */
yaffs_tags_marshall_install(dev);
/* Check we now have the marshalling functions required. */
- if (!
param
->write_chunk_tags_fn ||
- !
param
->read_chunk_tags_fn ||
- !
param
->query_block_fn ||
- !
param
->mark_bad_fn)
+ if (!
tagger
->write_chunk_tags_fn ||
+ !
tagger
->read_chunk_tags_fn ||
+ !
tagger
->query_block_fn ||
+ !
tagger
->mark_bad_fn)
return 0;
return 1;
return 0;
return 1;
@@
-4924,8
+4929,7
@@
void yaffs_deinitialise(struct yaffs_dev *dev)
dev->is_mounted = 0;
dev->is_mounted = 0;
- if (dev->param.drv_deinitialise_fn)
- dev->param.drv_deinitialise_fn(dev);
+ yaffs_deinit_nand(dev);
}
}
}
}