Skip to content
Snippets Groups Projects
Commit 14b3b44e authored by Wu, Josh's avatar Wu, Josh Committed by Andreas Bießmann
Browse files

mtd: atmel-nand: use pmecc_readl(b)/pmecc_writel to access the pmecc register


We defined the macro pmecc_readl(b)/pmecc_writel for pmecc register access.
But in the driver we also use the readl(b)/writel.
To keep consistent, this patch make all use pmecc_readl(b)/pmecc_writel.

Signed-off-by: default avatarJosh Wu <josh.wu@atmel.com>
Reviewed-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
Signed-off-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
parent 9170818a
No related branches found
No related tags found
No related merge requests found
...@@ -164,7 +164,7 @@ static void pmecc_gen_syndrome(struct mtd_info *mtd, int sector) ...@@ -164,7 +164,7 @@ static void pmecc_gen_syndrome(struct mtd_info *mtd, int sector)
/* Fill odd syndromes */ /* Fill odd syndromes */
for (i = 0; i < host->pmecc_corr_cap; i++) { for (i = 0; i < host->pmecc_corr_cap; i++) {
value = readl(&host->pmecc->rem_port[sector].rem[i / 2]); value = pmecc_readl(host->pmecc, rem_port[sector].rem[i / 2]);
if (i & 1) if (i & 1)
value >>= 16; value >>= 16;
value &= 0xffff; value &= 0xffff;
...@@ -392,10 +392,11 @@ static int pmecc_err_location(struct mtd_info *mtd) ...@@ -392,10 +392,11 @@ static int pmecc_err_location(struct mtd_info *mtd)
int16_t *smu = host->pmecc_smu; int16_t *smu = host->pmecc_smu;
int timeout = PMECC_MAX_TIMEOUT_US; int timeout = PMECC_MAX_TIMEOUT_US;
writel(PMERRLOC_DISABLE, &host->pmerrloc->eldis); pmecc_writel(host->pmerrloc, eldis, PMERRLOC_DISABLE);
for (i = 0; i <= host->pmecc_lmu[cap + 1] >> 1; i++) { for (i = 0; i <= host->pmecc_lmu[cap + 1] >> 1; i++) {
writel(smu[(cap + 1) * num + i], &host->pmerrloc->sigma[i]); pmecc_writel(host->pmerrloc, sigma[i],
smu[(cap + 1) * num + i]);
err_nbr++; err_nbr++;
} }
...@@ -403,12 +404,12 @@ static int pmecc_err_location(struct mtd_info *mtd) ...@@ -403,12 +404,12 @@ static int pmecc_err_location(struct mtd_info *mtd)
if (sector_size == 1024) if (sector_size == 1024)
val |= PMERRLOC_ELCFG_SECTOR_1024; val |= PMERRLOC_ELCFG_SECTOR_1024;
writel(val, &host->pmerrloc->elcfg); pmecc_writel(host->pmerrloc, elcfg, val);
writel(sector_size * 8 + host->pmecc_degree * cap, pmecc_writel(host->pmerrloc, elen,
&host->pmerrloc->elen); sector_size * 8 + host->pmecc_degree * cap);
while (--timeout) { while (--timeout) {
if (readl(&host->pmerrloc->elisr) & PMERRLOC_CALC_DONE) if (pmecc_readl(host->pmerrloc, elisr) & PMERRLOC_CALC_DONE)
break; break;
WATCHDOG_RESET(); WATCHDOG_RESET();
udelay(1); udelay(1);
...@@ -419,7 +420,7 @@ static int pmecc_err_location(struct mtd_info *mtd) ...@@ -419,7 +420,7 @@ static int pmecc_err_location(struct mtd_info *mtd)
return -1; return -1;
} }
roots_nbr = (readl(&host->pmerrloc->elisr) & PMERRLOC_ERR_NUM_MASK) roots_nbr = (pmecc_readl(host->pmerrloc, elisr) & PMERRLOC_ERR_NUM_MASK)
>> 8; >> 8;
/* Number of roots == degree of smu hence <= cap */ /* Number of roots == degree of smu hence <= cap */
if (roots_nbr == host->pmecc_lmu[cap + 1] >> 1) if (roots_nbr == host->pmecc_lmu[cap + 1] >> 1)
...@@ -443,7 +444,7 @@ static void pmecc_correct_data(struct mtd_info *mtd, uint8_t *buf, uint8_t *ecc, ...@@ -443,7 +444,7 @@ static void pmecc_correct_data(struct mtd_info *mtd, uint8_t *buf, uint8_t *ecc,
sector_size = host->pmecc_sector_size; sector_size = host->pmecc_sector_size;
while (err_nbr) { while (err_nbr) {
tmp = readl(&host->pmerrloc->el[i]) - 1; tmp = pmecc_readl(host->pmerrloc, el[i]) - 1;
byte_pos = tmp / 8; byte_pos = tmp / 8;
bit_pos = tmp % 8; bit_pos = tmp % 8;
...@@ -597,7 +598,7 @@ static int atmel_nand_pmecc_write_page(struct mtd_info *mtd, ...@@ -597,7 +598,7 @@ static int atmel_nand_pmecc_write_page(struct mtd_info *mtd,
pos = i * host->pmecc_bytes_per_sector + j; pos = i * host->pmecc_bytes_per_sector + j;
chip->oob_poi[eccpos[pos]] = chip->oob_poi[eccpos[pos]] =
readb(&host->pmecc->ecc_port[i].ecc[j]); pmecc_readb(host->pmecc, ecc_port[i].ecc[j]);
} }
} }
chip->write_buf(mtd, chip->oob_poi, mtd->oobsize); chip->write_buf(mtd, chip->oob_poi, mtd->oobsize);
......
...@@ -34,6 +34,9 @@ ...@@ -34,6 +34,9 @@
#define pmecc_readl(addr, reg) \ #define pmecc_readl(addr, reg) \
readl(&addr->reg) readl(&addr->reg)
#define pmecc_readb(addr, reg) \
readb(&addr->reg)
#define pmecc_writel(addr, reg, value) \ #define pmecc_writel(addr, reg, value) \
writel((value), &addr->reg) writel((value), &addr->reg)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment