#include "yaffs_packedtags1.h"
#include "yaffs_tagscompat.h" /* for yaffs_calc_tags_ecc */
#include "yaffs_linux.h"
-
#include "linux/kernel.h"
#include "linux/version.h"
#include "linux/types.h"
* Returns YAFFS_OK or YAFFS_FAIL.
*/
int nandmtd1_write_chunk_tags(struct yaffs_dev *dev,
- int nand_chunk, const u8 * data,
+ int nand_chunk, const u8 *data,
const struct yaffs_ext_tags *etags)
{
struct mtd_info *mtd = yaffs_dev_to_mtd(dev);
pt1.deleted = 0;
}
#else
- ((u8 *) & pt1)[8] = 0xff;
+ ((u8 *) &pt1)[8] = 0xff;
if (etags->is_deleted) {
memset(&pt1, 0xff, 8);
/* zero page_status byte to indicate deleted */
- ((u8 *) & pt1)[8] = 0;
+ ((u8 *) &pt1)[8] = 0;
}
#endif
ops.len = (data) ? chunk_bytes : 0;
ops.ooblen = YTAG1_SIZE;
ops.datbuf = (u8 *) data;
- ops.oobbuf = (u8 *) & pt1;
+ ops.oobbuf = (u8 *) &pt1;
retval = mtd->write_oob(mtd, addr, &ops);
if (retval) {
- T(YAFFS_TRACE_MTD,
- (TSTR("write_oob failed, chunk %d, mtd error %d" TENDSTR),
- nand_chunk, retval));
+ yaffs_trace(YAFFS_TRACE_MTD,
+ "write_oob failed, chunk %d, mtd error %d",
+ nand_chunk, retval);
}
return retval ? YAFFS_FAIL : YAFFS_OK;
}
* Returns YAFFS_OK or YAFFS_FAIL.
*/
int nandmtd1_read_chunk_tags(struct yaffs_dev *dev,
- int nand_chunk, u8 * data,
+ int nand_chunk, u8 *data,
struct yaffs_ext_tags *etags)
{
struct mtd_info *mtd = yaffs_dev_to_mtd(dev);
ops.len = (data) ? chunk_bytes : 0;
ops.ooblen = YTAG1_SIZE;
ops.datbuf = data;
- ops.oobbuf = (u8 *) & pt1;
+ ops.oobbuf = (u8 *) &pt1;
/* Read page and oob using MTD.
* Check status and determine ECC result.
*/
retval = mtd->read_oob(mtd, addr, &ops);
if (retval) {
- T(YAFFS_TRACE_MTD,
- (TSTR("read_oob failed, chunk %d, mtd error %d" TENDSTR),
- nand_chunk, retval));
+ yaffs_trace(YAFFS_TRACE_MTD,
+ "read_oob failed, chunk %d, mtd error %d",
+ nand_chunk, retval);
}
switch (retval) {
/* Check for a blank/erased chunk.
*/
- if (yaffs_check_ff((u8 *) & pt1, 8)) {
+ if (yaffs_check_ff((u8 *) &pt1, 8)) {
/* when blank, upper layers want ecc_result to be <= NO_ERROR */
return rettags(etags, YAFFS_ECC_RESULT_NO_ERROR, YAFFS_OK);
}
deleted = !pt1.deleted;
pt1.deleted = 1;
#else
- deleted = (yaffs_count_bits(((u8 *) & pt1)[8]) < 7);
+ deleted = (hweight8(((u8 *) &pt1)[8]) < 7);
#endif
/* Check the packed tags mini-ECC and correct if necessary/possible.
int blocksize = dev->param.chunks_per_block * dev->data_bytes_per_chunk;
int retval;
- T(YAFFS_TRACE_BAD_BLOCKS,
- (TSTR("marking block %d bad" TENDSTR), block_no));
+ yaffs_trace(YAFFS_TRACE_BAD_BLOCKS,
+ "marking block %d bad", block_no);
retval = mtd->block_markbad(mtd, (loff_t) blocksize * block_no);
return (retval) ? YAFFS_FAIL : YAFFS_OK;
int oobavail = mtd->ecclayout->oobavail;
if (oobavail < YTAG1_SIZE) {
- T(YAFFS_TRACE_ERROR,
- (TSTR
- ("mtd device has only %d bytes for tags, need %d" TENDSTR),
- oobavail, YTAG1_SIZE));
+ yaffs_trace(YAFFS_TRACE_ERROR,
+ "mtd device has only %d bytes for tags, need %d",
+ oobavail, YTAG1_SIZE);
return YAFFS_FAIL;
}
return YAFFS_OK;
retval = nandmtd1_read_chunk_tags(dev, chunk_num, NULL, &etags);
etags.block_bad = (mtd->block_isbad) (mtd, addr);
if (etags.block_bad) {
- T(YAFFS_TRACE_BAD_BLOCKS,
- (TSTR("block %d is marked bad" TENDSTR), block_no));
+ yaffs_trace(YAFFS_TRACE_BAD_BLOCKS,
+ "block %d is marked bad", block_no);
state = YAFFS_BLOCK_STATE_DEAD;
} else if (etags.ecc_result != YAFFS_ECC_RESULT_NO_ERROR) {
/* bad tags, need to look more closely */