UPSTREAM: 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")
Change-Id: I72a34c2a18addb5a96b98fa5799bc9391a934d26
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Ofer Heifetz <oferh@marvell.com>
Reviewed-by: Igal Liberman <igall@marvell.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
(cherry picked from commit 7efd95eacf790714e70415cbe290056fedc33f82)
This commit is contained in:
parent
7c94bb9bcb
commit
e3ba9ba2c8
|
|
@ -1257,7 +1257,7 @@ static void pxa3xx_nand_config_tail(struct pxa3xx_nand_info *info)
|
|||
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;
|
||||
uint32_t ndcr = nand_readl(info, NDCR);
|
||||
|
|
@ -1269,7 +1269,6 @@ static int pxa3xx_nand_detect_config(struct pxa3xx_nand_info *info)
|
|||
info->reg_ndcr |= (pdata->enable_arbiter) ? NDCR_ND_ARB_EN : 0;
|
||||
info->ndtr0cs0 = nand_readl(info, NDTR0CS0);
|
||||
info->ndtr1cs0 = nand_readl(info, NDTR1CS0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int pxa3xx_nand_init_buff(struct pxa3xx_nand_info *info)
|
||||
|
|
@ -1389,22 +1388,21 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
|
|||
int ret;
|
||||
uint16_t ecc_strength, ecc_step;
|
||||
|
||||
if (pdata->keep_config && !pxa3xx_nand_detect_config(info))
|
||||
goto KEEP_CONFIG;
|
||||
|
||||
ret = pxa3xx_nand_config_ident(info);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = pxa3xx_nand_sensing(host);
|
||||
if (ret) {
|
||||
dev_info(&info->pdev->dev, "There is no chip on cs %d!\n",
|
||||
info->cs);
|
||||
|
||||
return ret;
|
||||
if (pdata->keep_config) {
|
||||
pxa3xx_nand_detect_config(info);
|
||||
} else {
|
||||
ret = pxa3xx_nand_config_ident(info);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = pxa3xx_nand_sensing(host);
|
||||
if (ret) {
|
||||
dev_info(&info->pdev->dev,
|
||||
"There is no chip on cs %d!\n",
|
||||
info->cs);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
KEEP_CONFIG:
|
||||
/* Device detection must be done with ECC disabled */
|
||||
if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370)
|
||||
nand_writel(info, NDECCCTRL, 0x0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue