|
|
@ -312,7 +312,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
nfi_writel(nfc, reg, NFI_CON);
|
|
|
|
nfi_writel(nfc, reg, NFI_CON);
|
|
|
|
|
|
|
|
|
|
|
|
nfi_writew(nfc, STAR_EN, NFI_STRDATA);
|
|
|
|
nfi_writew(nfc, STAR_EN, NFI_STRDATA);
|
|
|
|
@@ -1126,9 +1127,11 @@ static void mtk_nfc_set_fdm(struct mtk_n
|
|
|
|
@@ -1125,9 +1126,11 @@ static void mtk_nfc_set_fdm(struct mtk_n
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct nand_chip *nand = mtd_to_nand(mtd);
|
|
|
|
struct nand_chip *nand = mtd_to_nand(mtd);
|
|
|
|
struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand);
|
|
|
|
struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand);
|
|
|
@ -325,7 +325,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
|
|
|
|
|
|
|
|
fdm->reg_size = chip->spare_per_sector - ecc_bytes;
|
|
|
|
fdm->reg_size = chip->spare_per_sector - ecc_bytes;
|
|
|
|
if (fdm->reg_size > NFI_FDM_MAX_SIZE)
|
|
|
|
if (fdm->reg_size > NFI_FDM_MAX_SIZE)
|
|
|
|
@@ -1208,7 +1211,8 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
@@ -1207,7 +1210,8 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
* this controller only supports 512 and 1024 sizes
|
|
|
|
* this controller only supports 512 and 1024 sizes
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
if (nand->ecc.size < 1024) {
|
|
|
|
if (nand->ecc.size < 1024) {
|
|
|
@ -335,7 +335,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
nand->ecc.size = 1024;
|
|
|
|
nand->ecc.size = 1024;
|
|
|
|
nand->ecc.strength <<= 1;
|
|
|
|
nand->ecc.strength <<= 1;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
@@ -1223,7 +1227,8 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
@@ -1222,7 +1226,8 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
return ret;
|
|
|
|
return ret;
|
|
|
|
|
|
|
|
|
|
|
|
/* calculate oob bytes except ecc parity data */
|
|
|
|
/* calculate oob bytes except ecc parity data */
|
|
|
@ -345,7 +345,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
free = spare - free;
|
|
|
|
free = spare - free;
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
@@ -1233,10 +1238,12 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
@@ -1232,10 +1237,12 @@ static int mtk_nfc_ecc_init(struct devic
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
if (free > NFI_FDM_MAX_SIZE) {
|
|
|
|
if (free > NFI_FDM_MAX_SIZE) {
|
|
|
|
spare -= NFI_FDM_MAX_SIZE;
|
|
|
|
spare -= NFI_FDM_MAX_SIZE;
|
|
|
@ -360,7 +360,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1389,6 +1396,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
|
|
|
@@ -1388,6 +1395,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
|
|
|
.num_spare_size = 16,
|
|
|
|
.num_spare_size = 16,
|
|
|
|
.pageformat_spare_shift = 4,
|
|
|
|
.pageformat_spare_shift = 4,
|
|
|
|
.nfi_clk_div = 1,
|
|
|
|
.nfi_clk_div = 1,
|
|
|
@ -369,7 +369,7 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> |
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
|
|
|
static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
|
|
|
@@ -1396,6 +1405,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
|
|
|
@@ -1395,6 +1404,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
|
|
|
.num_spare_size = 19,
|
|
|
|
.num_spare_size = 19,
|
|
|
|
.pageformat_spare_shift = 16,
|
|
|
|
.pageformat_spare_shift = 16,
|
|
|
|
.nfi_clk_div = 2,
|
|
|
|
.nfi_clk_div = 2,
|
|
|
|