Loading drivers/mtd/nand/bf5xx_nand.c +24 −14 Original line number Diff line number Diff line Loading @@ -549,7 +549,6 @@ static void bf5xx_nand_dma_write_buf(struct mtd_info *mtd, /* * System initialization functions */ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info) { int ret; Loading Loading @@ -582,6 +581,13 @@ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info) return 0; } static void bf5xx_nand_dma_remove(struct bf5xx_nand_info *info) { /* Free NFC DMA channel */ if (hardware_ecc) free_dma(CH_NFC); } /* * BF5XX NFC hardware initialization * - pin mux setup Loading Loading @@ -658,6 +664,7 @@ static int __devexit bf5xx_nand_remove(struct platform_device *pdev) } peripheral_free_list(bfin_nfc_pin_req); bf5xx_nand_dma_remove(info); /* free the common resources */ kfree(info); Loading @@ -683,21 +690,21 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "(%p)\n", pdev); if (!plat) { dev_err(&pdev->dev, "no platform specific information\n"); return -EINVAL; } if (peripheral_request_list(bfin_nfc_pin_req, DRV_NAME)) { dev_err(&pdev->dev, "requesting Peripherals failed\n"); return -EFAULT; } if (!plat) { dev_err(&pdev->dev, "no platform specific information\n"); goto exit_error; } info = kzalloc(sizeof(*info), GFP_KERNEL); if (info == NULL) { dev_err(&pdev->dev, "no memory for flash info\n"); err = -ENOMEM; goto exit_error; goto out_err_kzalloc; } platform_set_drvdata(pdev, info); Loading Loading @@ -741,8 +748,8 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) /* initialise the hardware */ err = bf5xx_nand_hw_init(info); if (err != 0) goto exit_error; if (err) goto out_err_hw_init; /* setup hardware ECC data struct */ if (hardware_ecc) { Loading Loading @@ -772,7 +779,7 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) /* scan hardware nand chip and setup mtd info data struct */ if (nand_scan(mtd, 1)) { err = -ENXIO; goto exit_error; goto out_err_nand_scan; } /* add NAND partition */ Loading @@ -781,11 +788,14 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "initialised ok\n"); return 0; exit_error: bf5xx_nand_remove(pdev); out_err_nand_scan: bf5xx_nand_dma_remove(info); out_err_hw_init: platform_set_drvdata(pdev, NULL); kfree(info); out_err_kzalloc: peripheral_free_list(bfin_nfc_pin_req); if (err == 0) err = -EINVAL; return err; } Loading Loading
drivers/mtd/nand/bf5xx_nand.c +24 −14 Original line number Diff line number Diff line Loading @@ -549,7 +549,6 @@ static void bf5xx_nand_dma_write_buf(struct mtd_info *mtd, /* * System initialization functions */ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info) { int ret; Loading Loading @@ -582,6 +581,13 @@ static int bf5xx_nand_dma_init(struct bf5xx_nand_info *info) return 0; } static void bf5xx_nand_dma_remove(struct bf5xx_nand_info *info) { /* Free NFC DMA channel */ if (hardware_ecc) free_dma(CH_NFC); } /* * BF5XX NFC hardware initialization * - pin mux setup Loading Loading @@ -658,6 +664,7 @@ static int __devexit bf5xx_nand_remove(struct platform_device *pdev) } peripheral_free_list(bfin_nfc_pin_req); bf5xx_nand_dma_remove(info); /* free the common resources */ kfree(info); Loading @@ -683,21 +690,21 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "(%p)\n", pdev); if (!plat) { dev_err(&pdev->dev, "no platform specific information\n"); return -EINVAL; } if (peripheral_request_list(bfin_nfc_pin_req, DRV_NAME)) { dev_err(&pdev->dev, "requesting Peripherals failed\n"); return -EFAULT; } if (!plat) { dev_err(&pdev->dev, "no platform specific information\n"); goto exit_error; } info = kzalloc(sizeof(*info), GFP_KERNEL); if (info == NULL) { dev_err(&pdev->dev, "no memory for flash info\n"); err = -ENOMEM; goto exit_error; goto out_err_kzalloc; } platform_set_drvdata(pdev, info); Loading Loading @@ -741,8 +748,8 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) /* initialise the hardware */ err = bf5xx_nand_hw_init(info); if (err != 0) goto exit_error; if (err) goto out_err_hw_init; /* setup hardware ECC data struct */ if (hardware_ecc) { Loading Loading @@ -772,7 +779,7 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) /* scan hardware nand chip and setup mtd info data struct */ if (nand_scan(mtd, 1)) { err = -ENXIO; goto exit_error; goto out_err_nand_scan; } /* add NAND partition */ Loading @@ -781,11 +788,14 @@ static int __devinit bf5xx_nand_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "initialised ok\n"); return 0; exit_error: bf5xx_nand_remove(pdev); out_err_nand_scan: bf5xx_nand_dma_remove(info); out_err_hw_init: platform_set_drvdata(pdev, NULL); kfree(info); out_err_kzalloc: peripheral_free_list(bfin_nfc_pin_req); if (err == 0) err = -EINVAL; return err; } Loading