Skip to content
Snippets Groups Projects
Commit 7efd95ea authored by Ofer Heifetz's avatar Ofer Heifetz Committed by Stefan Roese
Browse files

mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan


This commit simplifies the initial configuration performed
by pxa3xx_nand_scan. No functionality change is intended.

This commit is taken from Linux:
'commit 154f50fbde53'
("mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan")

Signed-off-by: default avatarChris Packham <judge.packham@gmail.com>
Signed-off-by: default avatarOfer Heifetz <oferh@marvell.com>
Reviewed-by: default avatarIgal Liberman <igall@marvell.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: default avatarStefan Roese <sr@denx.de>
parent b87ae6f5
No related branches found
No related tags found
No related merge requests found
...@@ -1256,7 +1256,7 @@ static void pxa3xx_nand_config_tail(struct pxa3xx_nand_info *info) ...@@ -1256,7 +1256,7 @@ static void pxa3xx_nand_config_tail(struct pxa3xx_nand_info *info)
info->reg_ndcr |= (mtd->writesize == 2048) ? NDCR_PAGE_SZ : 0; info->reg_ndcr |= (mtd->writesize == 2048) ? NDCR_PAGE_SZ : 0;
} }
static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info) static void pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info)
{ {
struct pxa3xx_nand_platform_data *pdata = info->pdata; struct pxa3xx_nand_platform_data *pdata = info->pdata;
uint32_t ndcr = nand_readl(info, NDCR); uint32_t ndcr = nand_readl(info, NDCR);
...@@ -1268,7 +1268,6 @@ static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info) ...@@ -1268,7 +1268,6 @@ static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info)
info->reg_ndcr |= (pdata->enable_arbiter) ? NDCR_ND_ARB_EN : 0; info->reg_ndcr |= (pdata->enable_arbiter) ? NDCR_ND_ARB_EN : 0;
info->ndtr0cs0 = nand_readl(info, NDTR0CS0); info->ndtr0cs0 = nand_readl(info, NDTR0CS0);
info->ndtr1cs0 = nand_readl(info, NDTR1CS0); info->ndtr1cs0 = nand_readl(info, NDTR1CS0);
return 0;
} }
static int pxa3xx_nand_init_buff(struct pxa3xx_nand_info *info) static int pxa3xx_nand_init_buff(struct pxa3xx_nand_info *info)
...@@ -1388,22 +1387,21 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd) ...@@ -1388,22 +1387,21 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
int ret; int ret;
uint16_t ecc_strength, ecc_step; uint16_t ecc_strength, ecc_step;
if (pdata->keep_config && !pxa3xx_nand_detect_config(info)) if (pdata->keep_config) {
goto KEEP_CONFIG; pxa3xx_nand_detect_config(info);
} else {
ret = pxa3xx_nand_config_ident(info); ret = pxa3xx_nand_config_ident(info);
if (ret) if (ret)
return ret; return ret;
ret = pxa3xx_nand_sensing(host);
ret = pxa3xx_nand_sensing(host); if (ret) {
if (ret) { dev_info(&info->pdev->dev,
dev_info(&info->pdev->dev, "There is no chip on cs %d!\n", "There is no chip on cs %d!\n",
info->cs); info->cs);
return ret;
return ret; }
} }
KEEP_CONFIG:
/* Device detection must be done with ECC disabled */ /* Device detection must be done with ECC disabled */
if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370) if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370)
nand_writel(info, NDECCCTRL, 0x0); nand_writel(info, NDECCCTRL, 0x0);
......
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