]> git.karo-electronics.de Git - linux-beck.git/commitdiff
mtd: pxa3xx_nand: Simplify pxa3xx_nand_scan
authorEzequiel García <ezequiel@vanguardiasur.com.ar>
Wed, 4 Nov 2015 16:13:43 +0000 (13:13 -0300)
committerBrian Norris <computersforpeace@gmail.com>
Mon, 16 Nov 2015 22:58:35 +0000 (14:58 -0800)
This commit simplifies the initial configuration performed
by pxa3xx_nand_scan. No functionality change is intended.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/pxa3xx_nand.c

index 54512ce254432cedaeffc2aeeb0afb9574256f22..002f1cc75543a4ebf2e10de6c51760fc753a04a1 100644 (file)
@@ -1413,7 +1413,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 platform_device *pdev = info->pdev;
        struct pxa3xx_nand_platform_data *pdata = dev_get_platdata(&pdev->dev);
@@ -1426,7 +1426,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)
@@ -1597,22 +1596,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:
        if (info->reg_ndcr & NDCR_DWIDTH_M)
                chip->options |= NAND_BUSWIDTH_16;