mtd: nand: omap_gpmc: remove unused members of 'struct nand_bch_priv'
This patch prepares to refactor 'struct nand_bch_priv' -> 'struct omap_nand_info' And thus performs following clean-ups: - remove nand_bch_priv.type: use nand_bch_priv.ecc_scheme instead - remove nand_bch_priv.mode: <unused> Signed-off-by: Pekon Gupta <pekon@ti.com> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
0439d752c5
commit
d21e77ff84
1 changed files with 6 additions and 17 deletions
|
@ -151,17 +151,10 @@ static int __maybe_unused omap_correct_data(struct mtd_info *mtd, uint8_t *dat,
|
||||||
* Generic BCH interface
|
* Generic BCH interface
|
||||||
*/
|
*/
|
||||||
struct nand_bch_priv {
|
struct nand_bch_priv {
|
||||||
uint8_t mode;
|
|
||||||
uint8_t type;
|
|
||||||
struct bch_control *control;
|
struct bch_control *control;
|
||||||
enum omap_ecc ecc_scheme;
|
enum omap_ecc ecc_scheme;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* bch types */
|
|
||||||
#define ECC_BCH4 0
|
|
||||||
#define ECC_BCH8 1
|
|
||||||
#define ECC_BCH16 2
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This can be a single instance cause all current users have only one NAND
|
* This can be a single instance cause all current users have only one NAND
|
||||||
* with nearly the same setup (BCH8, some with ELM and others with sw BCH
|
* with nearly the same setup (BCH8, some with ELM and others with sw BCH
|
||||||
|
@ -169,7 +162,6 @@ struct nand_bch_priv {
|
||||||
* When some users with other BCH strength will exists this have to change!
|
* When some users with other BCH strength will exists this have to change!
|
||||||
*/
|
*/
|
||||||
static __maybe_unused struct nand_bch_priv bch_priv = {
|
static __maybe_unused struct nand_bch_priv bch_priv = {
|
||||||
.type = ECC_BCH8,
|
|
||||||
.control = NULL
|
.control = NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -342,6 +334,7 @@ static int omap_correct_data_bch(struct mtd_info *mtd, uint8_t *dat,
|
||||||
uint32_t eccbytes = chip->ecc.bytes;
|
uint32_t eccbytes = chip->ecc.bytes;
|
||||||
uint32_t error_count = 0, error_max;
|
uint32_t error_count = 0, error_max;
|
||||||
uint32_t error_loc[8];
|
uint32_t error_loc[8];
|
||||||
|
enum bch_level bch_type;
|
||||||
uint32_t i, ecc_flag = 0;
|
uint32_t i, ecc_flag = 0;
|
||||||
uint8_t count, err = 0;
|
uint8_t count, err = 0;
|
||||||
uint32_t byte_pos, bit_pos;
|
uint32_t byte_pos, bit_pos;
|
||||||
|
@ -369,22 +362,22 @@ static int omap_correct_data_bch(struct mtd_info *mtd, uint8_t *dat,
|
||||||
*/
|
*/
|
||||||
switch (bch->ecc_scheme) {
|
switch (bch->ecc_scheme) {
|
||||||
case OMAP_ECC_BCH8_CODE_HW:
|
case OMAP_ECC_BCH8_CODE_HW:
|
||||||
|
bch_type = BCH_8_BIT;
|
||||||
omap_reverse_list(calc_ecc, eccbytes - 1);
|
omap_reverse_list(calc_ecc, eccbytes - 1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
/* use elm module to check for errors */
|
/* use elm module to check for errors */
|
||||||
elm_config((enum bch_level)(bch->type));
|
elm_config(bch_type);
|
||||||
if (elm_check_error(calc_ecc, (enum bch_level)bch->type,
|
if (elm_check_error(calc_ecc, bch_type, &error_count, error_loc)) {
|
||||||
&error_count, error_loc)) {
|
|
||||||
printf("nand: error: uncorrectable ECC errors\n");
|
printf("nand: error: uncorrectable ECC errors\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
/* correct bch error */
|
/* correct bch error */
|
||||||
for (count = 0; count < error_count; count++) {
|
for (count = 0; count < error_count; count++) {
|
||||||
switch (bch->type) {
|
switch (bch->ecc_scheme) {
|
||||||
case ECC_BCH8:
|
case OMAP_ECC_BCH8_CODE_HW:
|
||||||
/* 14th byte in ECC is reserved to match ROM layout */
|
/* 14th byte in ECC is reserved to match ROM layout */
|
||||||
error_max = SECTOR_BYTES + (eccbytes - 1);
|
error_max = SECTOR_BYTES + (eccbytes - 1);
|
||||||
break;
|
break;
|
||||||
|
@ -562,7 +555,6 @@ static int omap_select_ecc_scheme(struct nand_chip *nand,
|
||||||
/* For this ecc-scheme, ecc.bytes, ecc.layout, ... are
|
/* For this ecc-scheme, ecc.bytes, ecc.layout, ... are
|
||||||
* initialized in nand_scan_tail(), so just set ecc.mode */
|
* initialized in nand_scan_tail(), so just set ecc.mode */
|
||||||
bch_priv.control = NULL;
|
bch_priv.control = NULL;
|
||||||
bch_priv.type = 0;
|
|
||||||
nand->ecc.mode = NAND_ECC_SOFT;
|
nand->ecc.mode = NAND_ECC_SOFT;
|
||||||
nand->ecc.layout = NULL;
|
nand->ecc.layout = NULL;
|
||||||
nand->ecc.size = 0;
|
nand->ecc.size = 0;
|
||||||
|
@ -578,7 +570,6 @@ static int omap_select_ecc_scheme(struct nand_chip *nand,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
bch_priv.control = NULL;
|
bch_priv.control = NULL;
|
||||||
bch_priv.type = 0;
|
|
||||||
/* populate ecc specific fields */
|
/* populate ecc specific fields */
|
||||||
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
||||||
nand->ecc.mode = NAND_ECC_HW;
|
nand->ecc.mode = NAND_ECC_HW;
|
||||||
|
@ -617,7 +608,6 @@ static int omap_select_ecc_scheme(struct nand_chip *nand,
|
||||||
printf("nand: error: could not init_bch()\n");
|
printf("nand: error: could not init_bch()\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
bch_priv.type = ECC_BCH8;
|
|
||||||
/* populate ecc specific fields */
|
/* populate ecc specific fields */
|
||||||
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
||||||
nand->ecc.mode = NAND_ECC_HW;
|
nand->ecc.mode = NAND_ECC_HW;
|
||||||
|
@ -659,7 +649,6 @@ static int omap_select_ecc_scheme(struct nand_chip *nand,
|
||||||
}
|
}
|
||||||
/* intialize ELM for ECC error detection */
|
/* intialize ELM for ECC error detection */
|
||||||
elm_init();
|
elm_init();
|
||||||
bch_priv.type = ECC_BCH8;
|
|
||||||
/* populate ecc specific fields */
|
/* populate ecc specific fields */
|
||||||
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl));
|
||||||
nand->ecc.mode = NAND_ECC_HW;
|
nand->ecc.mode = NAND_ECC_HW;
|
||||||
|
|
Loading…
Reference in a new issue